0

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

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

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

查询.java

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

查询项目.java

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

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

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

4

1 回答 1

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);
于 2013-03-13T07:00:57.377 回答