Hibernate OneTOMany映射错误

时间:2013-03-13 06:50:01

标签: java hibernate jpa

我有2个名为Enquiry.java和EnquiryItem.java的类

当生成enuiry时,我将其项保存在EnquiryItems中。

下面是我在POJO课程中的映射文件。

Enquiry.java

@OneToMany(fetch=FetchType.LAZY,cascade = CascadeType.ALL,mappedBy="enquiryId")
@JoinColumn(name = "enq_id",  referencedColumnName = "id")
private List<EnquiryItem> enquiryItems=new ArrayList<EnquiryItem>();

EnquiryItem.java

@ManyToOne
@JoinColumn(name="enq_id")
private Enquiry enquiryId;

我无法找到我做错的地方。请帮帮我。

编辑:保存查询时,enquiry_id在数据库中保存为空。

1 个答案:

答案 0 :(得分:2)

问题是您需要在将enquiryId保存到数据库之前设置它。这需要您使用mappedBy属性。你需要做的是。

当您将EnquiryItem对象添加到列表中时,请通过调用它的setter方法设置enquiryId。 编辑:

如下所示:

EnquiryItem.setEnquiryId(enquiry )

编辑2:

Enquiry enquiry= new Enquiry(bus,prListNo,enquiryNo,user,new java.util.Date(),enquiryItemsList); 
for(EnquiryItem item:enquiryItemsList)
 item.setEnquiryId(enquiry);