是否可以在不由JPA在数据库中创建外键的情况下建立ManyToOne关联?
这些表归另一个系统所有,并以异步方式填充。因此,我们不能在数据库中有外键。但几乎总是存在关系。
@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。我们可以忽略这个问题,但如果不解决,它会导致其他语句执行失败。我们使用的是hibernate-entitymanager 4.3.7.Final和JPA 2.1版本。出现以下报错信息:[error] o.h.t.h.SchemaUpdate - Cannot add foreign key constraint 和 [error] o.h.t.h.SchemaUpdate - No operations allowed after statement closed.
hibernate.hbm2ddl.auto
?如果是,如果将其值设置为none
会发生什么? - Predrag Maric