我有一个Hibernate持久化的类,派生属性isComplete
。
@Entity
class Container {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Long id;
@Column private String oneFish;
@Column private String twoFish;
@Column private String redFish;
@Column private String blueFish;
public Boolean isComplete(){
return oneFish != null
&& twoFish != null
&& redFish != null
&& blueFish != null;
}
}
如何让Hibernate持久保存isComplete到数据库,以便其他(非休眠)访问可以看到值?
答案 0 :(得分:1)
如果您使用@Column
对方法进行注释,则会保留该方法(您可能必须在实体上指定@AccessType
/ @Access
)
但你不应该这样做。存储所有其他值并在需要时计算isComplete
。这不是一项昂贵的操作。您甚至可以将其“缓存”在@Transient Boolean
属性中,但不需要访问数据库。
答案 1 :(得分:0)
我正在使用XML Hibernate映射,但如果我正确理解Hibernate注释,您可以将isComplete()注释为@Column并提供无操作setter setComplete()。