gpt4 book ai didi

hibernate - JPA规范是否允许引用非主键列?

转载 作者:行者123 更新时间:2023-12-03 13:33:54 25 4
gpt4 key购买 nike

JPA规范是否允许对非主键列的简单引用?

我想在引用中使用我的Countrys表上的iso_code列,它有一个简单的替代/自然键(UNIQUE,NOT NULL),但Eclipse的Dali显示了验证错误,Hibernate抛出了MappingException。

是否允许这种常见情况?

最佳答案

@axtavt:好像您的答案不正确。我刚刚收到了来自“Pro JPA 2.0”作者的电子邮件,他们自己也在从事JPA规范。

“在您的示例中, zip 类与国家/地区有关系:

public class Zip implements Serializable
{
@Id
@Column(name = "code")
private String code;

@Id
@ManyToOne
@JoinColumn(name = "country_code", referencedColumnName = "iso_code")
private Country country = null;
...
}

这似乎是试图将country_code外键列指向Country表(不是PK)中的iso_code列。 JPA从未允许您创建像这样的关系,因为未指定国家(地区)的PK
无法唯一标识关系中的哪个Country实例。当您到达派生的标识符部分时,您只是在解决问题,但问题似乎出在无效的关系本身中。”

因此,JPA规范根本不允许将关系/ FK链接到非PK列...

关于hibernate - JPA规范是否允许引用非主键列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5818373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com