我必须在 Spring Boot 中重写一个旧软件。该软件有一个没有任何 FK 的数据库。我的问题是,如果一个类具有来自其他类的对象,这些对象与 FK 的 JPA 注释之一无关,我无法将它映射到 JPA。
您知道是否可以让 JPA 忽略或禁用 FK 约束?
我必须在 Spring Boot 中重写一个旧软件。该软件有一个没有任何 FK 的数据库。我的问题是,如果一个类具有来自其他类的对象,这些对象与 FK 的 JPA 注释之一无关,我无法将它映射到 JPA。
您知道是否可以让 JPA 忽略或禁用 FK 约束?
无论您的数据库是否有外键,对 Hibernate 来说都无关紧要。Hibernate 不会检查数据库的外键。当然你可能在数据库方面有一些问题,但是 Hibernate 只会根据你的实体类映射查询,而不是数据库中的外键。
如果您希望 Hibernate 在应用程序启动时创建您的数据库模式,并且希望它尽可能接近真实的模式(例如用于测试),您可以使用此注释告诉 Hibernate 不要创建外键:
@JoinColumn(name = "SOME_ID", nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))