根据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;
...
我知道这似乎不是最好的,但仍然对我有用。