你好,
到目前为止,我在使用 Hibernate 时非常满意。最近,我似乎无法使用注释来保留 @CollectionOfElements 。
我正在保存类 Estate 的对象,其中包含 RoomGroups 的地图,如下所示:
@javax.persistence.MapKey(name = "code")
@Cascade(value = {CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE})
@OneToMany(mappedBy = "estate")
@org.hibernate.annotations.OrderBy(clause = "code ASC")
private Map<String, RoomsGroup> roomGroups = new HashMap<String, RoomsGroup>();
RoomGroup 已正确持久化。RoomGroup 也与 MasterPrice 有关系
@Cascade(value = {CascadeType.DELETE_ORPHAN, CascadeType.SAVE_UPDATE})
@OneToOne(mappedBy = "roomGroup", fetch = FetchType.EAGER)
private MasterPrice prices;
到目前为止一切顺利,MasterPrice 元素已正确存储在数据库中。现在在 MasterPrice 里面有另一个集合,这个集合似乎永远不会被持久化
@CollectionOfElements (fetch = FetchType.EAGER)
@JoinTable(
name = "roomgroups_masterprice_items",
joinColumns = {@JoinColumn(name = "fk_masterpricesID")})
@IndexColumn(name = "position")
private List<MasterPriceItem> dbprices = new ArrayList<MasterPriceItem>();
MasterPriceItem 类是这样定义的
@Embeddable
public class MasterPriceItem implements Serializable{
我还在 MasterPriceItem 中定义了 equal/hashCode 方法,但似乎 hibernate 永远不会保留这个方法。我没有得到任何异常,当我尝试加载它时,它总是显示为 NULL。
我正在使用 hibernate_3.3.1.ga 有什么想法可以尝试吗?类 MasterPriceItem 被 hibernate 正确分析[如果我把一个不在表中的字段,我得到一个错误]
任何帮助高度赞赏。谢谢。