亲爱的,我正在使用Hibernate和hbm2ddl。我不喜欢为一个关系创建外键约束。不幸的是到目前为止我无法实现它。我用Hibernate和JPA注释试了一下,没有运气。 任何提示?
我正在使用Hibernate 4.3.1和mysql 5.6
@Entity
class Artikel {
...
@OneToMany(fetch=FetchType.LAZY, mappedBy="artikel")
@NotFound(action=NotFoundAction.IGNORE)
private List<Bild> images;
}
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ForeignKey;
@Entity
class Bild {
@ManyToOne(fetch=FetchType.LAZY)
@org.hibernate.annotations.ForeignKey(name = "none")
@JoinColumn(name="idKey", insertable=false, updatable=false,
foreignKey = @ForeignKey(name="none",value = ConstraintMode.NO_CONSTRAINT))
private Artikel artikel;
}
它始终为列“idKey”上的表“bild”创建外键:FK_k93uxcqtc87jifh2j3rliumuj:
导入期间出错:“无法添加或更新子行:外键约束失败(skateshop
。bild
,CONSTRAINT FK_k93uxcqtc87jifh2j3rliumuj
FOREIGN KEY(idKey
)REFERENCES {{1 (artikel
))“
答案 0 :(得分:1)
您正在使用正确的注释:
@ForeignKey(value = ConstraintMode.NO_CONSTRAINT)
它看起来像是hibernate 4.x中的一个错误,现在已经在5.x中修复了。如果你可以升级到Hibernate 5.x,那就可以解决问题。