gpt4 book ai didi

hibernate - 没有外键的 JPA 关联

转载 作者:行者123 更新时间:2023-12-04 06:58:55 30 4
gpt4 key购买 nike

是否可以在没有 JPA 在数据库中创建外键的情况下设置多对一关联?

这些表归另一个系统所有,并以异步方式填充。因此我们不能在数据库中使用 FK。仍然,几乎总是,最终是一种关系。

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name="`Order Type`", referencedColumnName = "`Order Type`", insertable = false, updatable = false),
@JoinColumn(name="`Order No`", referencedColumnName = "`No`", insertable = false, updatable = false)
}, foreignKey = @javax.persistence.ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
private OrderHeader orderHeader;

问题是 JPA SchemaUpdate 尝试添加 FK,即使 ConstraintMode.NO_CONSTRAINT

[error] o.h.t.h.SchemaUpdate - Cannot add foreign key constraint



如果它没有使其余语句失败,我们可以忽略它

[error] o.h.t.h.SchemaUpdate - No operations allowed after statement closed.



我们在 hibernate-entitymanager 4.3.7.Final 和 JPA 2.1 上。

最佳答案

ConstraintMode.NO_CONSTRAINT 被忽略的事实看起来像是 Hibernate 4 中的一个错误,因为它会在 5 中修复。

https://hibernate.atlassian.net/browse/HHH-8805

对此的评论和这里的帖子:

Multiple relationships with single mapping table without generating foreign keys by Hibernate

建议添加不推荐使用的( hibernate 而不是 JPA)注释

@ForeignKey( name = "none" )

到关系应该工作。

关于hibernate - 没有外键的 JPA 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040735/

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