我们的数据库中有一个名为“user”的遗留表。它可以从每个 webapp 访问,但它没有被 hibernate 映射。
如果你创建一个类(让我们称之为项目),其中包含一个“user_id”列,并将其映射到 hibernate,你就不能引用用户表的 user_id,如果没有 hibernate 映射的用户对象。
如果你有一个 hibernate 映射类“User”我会这样做
@Entity
@Table(name = "project")
public class Project implements Serializable {
// project specific attributes go here
@OneToOne
@JoinColumn(name = "user_id", updatable = true, nullable = false)
private User user;
}
您是否知道一种无需用户类即可创建外键关系的方法?有点像
@JoinColumn(table="user",name = "user_id")
private long user_id;
我的另一个想法是创建一个包含可以用 hibernate 映射的“用户”类的库。它必须通过 apache tomcat 的“libs”文件夹共享。唯一的问题是,如果以这种方式使用,hibernate 似乎无法映射类。 (映射工作正常,如果您将其作为普通库导入到单个 Web 应用程序)
最佳答案
您可以将其映射为long
@Column(name = "user_id")
private long user_id;
关于java - 如何从未被 hibernate 映射的表中添加带 hibernate 的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514130/