我有 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 保存到数据库之前设置它。这是必需的,因为您已使用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);
关于java - Hibernate OneTOMany 映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15378733/