问题描述
我有一个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持久保存到数据库,以便其他(非休眠)访问可以看到该值?
解决方法
如果您用
@Column
注释该方法,它将被保留(您可能必须在实体上指定@AccessType
/ѭ4))
但是您不应该那样做。存储所有其他值,并在需要时计算ѭ0。这不是一个昂贵的操作。您甚至可以在@Transient Boolean
属性中对其进行“缓存”,但是它不必进入数据库。
,我正在使用XML Hibernate映射,但是如果我正确理解了Hibernate批注,则可以将isComplete()注释为@Column并提供不做设置的setComplete()。