Hibernate-忽略非注释字段而无需添加@Transient.在

我希望默认情况下认为非注释的字段是短暂的,不必



根据Hibernate参考:

在注释世界中,每个非静态非瞬态属性 (根据访问类型的字段或方法)的实体是 除非您将其注释为 @transient,否则被认为是持久的。不是 对您的财产有注释等同于 适当的@basic注释。

当然,使用XML映射,您只能添加将要映射的属性。

我有同样的问题,没有冬眠的特定注释来忽略业务逻辑的一部分,但与列不符的字段确实不好。我不能像我一样使用@Transient,否则我必须将DTO与实体类分开,这在我的情况下是如此之多。

但是,我找到了解决方法,我使用@Formula注释并在其中给出默认值。例如;

@Entity
@Table(name = "users")
public class User implements Serializable {

    @Column(unique = true, insertable = true, updatable = false)
    @Id
    String userId;

    @Formula("0") // @Transient
    Integer nonDBInteger;
...

我知道这似乎不是最好的,但仍然对我有用。

最新更新