我想将我的类的一个实例持久化到objectdb中。
@Entity
public class MyClazz {
@Column(nullable = false)
DateTime date;
}
使用休眠,我只需要使用附加注释来注释该字段。
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
但是由于我想使用 objectdb 我不能使用这些注释,所以我得到一个异常(“尝试存储非持久类型 org.joda.time.DateTime 的实例”)
问题是 objectdb 禁用了对可序列化类型的“支持”。(见这里)我很确定他们这样做是有充分理由的,所以希望保持这种方式。
作为现在的解决方法,我使用 pre 和 post 钩子。
@Column(nullable = false)
private Date date = new Date();
@Transient
private DateTime dateTime;
@PrePersist
private void persist() {
date = dateTime.toDate();
}
@PostLoad
private void load() {
dateTime = new DateTime(date.getTime());
}
我的问题:还有其他方法吗?我想摆脱额外的日期字段。