如何解决具有一对一和一对多Java / JPA / Hibernate的实体映射
在实体映射方面需要帮助。我有Debtor实体,并且与Addresses实体具有一对多映射。 我也有不同的地址类型,并且Debtor应该与每种地址类型一对一映射。 每种地址类型都是地址的子类。在运行测试用例时,我遇到了错误
“为类query.entity.CurrentAddress提供了错误类型的ID。预期:类java.lang.Integer,得到了类 java.lang.String;嵌套的异常是java.lang.IllegalArgumentException:“
任何人都可以帮忙,如何映射实体。
product_id
解决方法
在您的Debtor
班上,您有以下内容:
@OneToOne
@JoinColumn(name = "id",referencedColumnName = "parent_id")
private CurrentAddress currAddr;
@OneToOne
告诉Hibernate,在Debtor类本身中找到了外键,其列名为“ id”,即String
。在映射回CurrentAddress
的{{1}}类中,您有一个Addresses
字段,它是一个@Id
。 休眠无法将int
主键与int
外键匹配,这会导致您收到错误消息。
取自here,以定义String
批注的name属性:
(可选)外键列的名称。找到它的表取决于上下文。
如果联接用于使用外键的OneToOne或ManyToOne映射 映射策略,外键列在源表中 实体或可嵌入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。