我有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>();


EnquiryItem.java

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


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

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

最佳答案

问题是您需要先将enquiryId设置为保存到数据库中。这是必需的,因为您已经使用了mappingBy属性。您需要做的是。

在将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);

07-26 02:58