在jpa实体中,以前是这样的,

@MappedSuperclass
@Data
public abstract class JpaBasePersist<I extends Serializable> implements Serializable {
}

@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
@Data
public abstract class JpaIdBasePersist<I extends Serializable> extends JpaBasePersist<I> {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private I id;
}

@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
@Data
public abstract class JpaLongIdBasePersist extends JpaIdBasePersist<Long> {
}

@EqualsAndHashCode(callSuper = true)
@MappedSuperclass
@Data
public class JpaCrudLongIdBasePersist extends JpaLongIdBasePersist {

    @Column(name = "create_time", insertable = false, updatable = false)
//    @Temporal(TemporalType.TIMESTAMP)
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @Column(name = "update_time", insertable = false, updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @Column(name = "create_user_id", nullable = false, updatable = false)
    private Long createUserId;
    @Column(name = "update_user_id", nullable = false)
    private Long updateUserId;
}

属于过度设计了,可以优化成一个JpaCrudLongIdBasePersist类,就够用了。

作者:admin  创建时间:2025-07-06 21:12
最后编辑:admin  更新时间:2025-09-19 10:08