休眠一对多注释外键空
Posted
技术标签:
【中文标题】休眠一对多注释外键空【英文标题】:hibernate one to many annotation foreign key null 【发布时间】:2017-07-25 08:07:38 【问题描述】:我有两个实体 LR.java
和 LI.java
。一个请求可能包含多个项目。
执行此方法后,项目表中的 lR 始终为空。我在这里做错了什么?任何建议
【问题讨论】:
public LoanItem() this.loanRequest = new LoanRequest();
这不应该在构造函数中完成......你不希望任何空的loanRequest自动出现。可能试试GenerationType.AUTO
我也试过了,同样的错误
你应该显示你的测试类的全部代码,因为通常你不想在测试期间坚持任何东西
更新测试用例方法。
找不到方法:loanService.createRequest(loanRequest, "skh");
【参考方案1】:
您定义了一个双向“多方”关联,因此开发者有责任保持关联双方的一致(即:loanRequest 和 loanItems)。
您应该将 Loanitem 实体的字段 loanRequest 设置为指向“正确”的 LoanRequest。 你在 addLoanItem 中是这样吗?
此外,除非您确实需要从一个实体“导航”到另一个实体并向后“导航”,否则我建议您使用单向关联,它们更易于管理且不易出现此类错误。
不管怎样,@XtremeBaumer 是对的,LoanItem 的构造函数应该是空的。
【讨论】:
以上是关于休眠一对多注释外键空的主要内容,如果未能解决你的问题,请参考以下文章