java - 如何从未被 hibernate 映射的表中添加带 hibernate 的外键?

标签 java postgresql apache hibernate tomcat

我们的数据库中有一个名为“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/

相关文章:

java - 我可以在 JPA 中使用 @Query 的嵌套查询吗?

iphone - 从服务器获取数据到 iPhone sdk

java - Apache Commons 朗 2 与 3

java - 如何在Java中获取对象的属性?

python - Psycopg2 或 SQLAlchemy 中的多个 SELECT

sql - 在 SQL Create 语句中添加命名外键约束

java - 不推荐使用 sslcontextbuilder 和 SSLContexts

java - 无法处理 jackson 中复合键的托管/反向引用 'defaultreference'

java - 非静态变量不能从静态上下文中引用 - 为什么在这里?

java - 是否有为 Delphi (Win32) DLL 创建 C 头文件的工具?