java - Hibernate OneTOMany 映射错误

标签 java hibernate jpa

我有 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/

相关文章:

java - Apache Camel : Proxy code

java - 将sql查询转换为hql

java - JPA LOJ(左外连接): Cannot join to attribute of basic type

java - 在 JPA 中的各个列上使用 DISTINCT 关键字

java - 在 AWS、Azure 之间切换。设计模式

java - Eclipse 中的构建路径错误

java - Spring Data/Hibernate native 查询返回 null,即使实际查询返回结果

java - spring jpa中如何管理数据库连接池?

java - JPA 加入继承类

java - 创建sessionFactory对象失败.java.lang.NoClassDefFoundError