是否可以在没有JPA的情况下设置ManyToOne关联在数据库中创建外键?
这些表由另一个系统拥有,并以异步方式填充.因此,我们不能在数据库中拥有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;
Run Code Online (Sandbox Code Playgroud)
问题是JPA SchemaUpdate尝试添加FK,即使ConstraintMode.NO_CONSTRAINT
[error] ohthSchemaUpdate - 无法添加外键约束
我们可以忽略它,如果它没有使其余的陈述失败
[error] ohthSchemaUpdate - 语句关闭后不允许任何操作.
我们正在使用hibernate-entitymanager 4.3.7.Final和JPA 2.1.
Ala*_*Hay 12
ConstraintMode.NO_CONSTRAINT被忽略的事实看起来像Hibernate 4中的一个错误,因为在5中被修复了.
https://hibernate.atlassian.net/browse/HHH-8805
对此的评论以及这篇文章的评论如下:
建议添加已弃用(hibernate而不是JPA)注释
@ForeignKey( name = "none" )
Run Code Online (Sandbox Code Playgroud)
这种关系应该奏效.
小智 7
添加name="none"的javax.persistence.ForeignKey,
这对我有用。
foreignKey = @javax.persistence.ForeignKey(name="none",value = ConstraintMode.NO_CONSTRAINT)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23272 次 |
| 最近记录: |