hibernate @CollectionOfElements没有持久化

时间:2010-11-16 20:06:15

标签: hibernate hibernate-mapping hibernate-annotations

HI,

到目前为止,我对Hibernate的使用非常满意。最近我似乎无法使用注释来持久保存@CollectionOfElements。

我正在保存一个Estate类的对象,它包含一个RoomGroups的Map,就像这里:

@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元素正确存储在DB中。现在在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中定义了相同的/ hashCode方法,但似乎hibernate永远不会持久存在。我没有得到任何异常,当我尝试加载它时总是出现NULL。

我正在使用hibernate_3.3.1.ga任何我可以尝试的想法?通过hibernate正确分析了MasterPriceItem类[如果我放置一个不在表中的字段,我会收到错误]

任何帮助高度赞赏。谢谢。

0 个答案:

没有答案