spring-boot - 如何使用Spring data JPA与数据库中的非实体表建立外键关系?

标签 spring-boot jpa spring-data-jpa foreign-keys

我的 spring boot 项目使用现有数据库,我的项目中有一个新的模型实体/表,它必须与数据库中的现有表具有外键约束。

我尝试在网上找到解决方案,但所有答案都是针对两个表都作为该项目中的实体存在并使用一些 @ManyToOne、@OneToMany 注释的情况。

我无法定义这些注释,因为我的项目中没有引用表作为实体或模型。

假设我有这样的类(class):

@Entity(name = "user")
public class User {
    @Id
    @GeneratedValue
    private long userId;
    private long departmentId;

我想在 departmentId 列上放置一个外键约束,以引用现有 department 表的 id 列,但该表不是定义为我的项目中的模型或实体。

谢谢

最佳答案

试试这样

@ManyToOne
@JoinColumn(name="(column name of current entity)", referencedColumnName="(column name in target entity)")
private Department departmentId;

如果两个实体中的列名称相同,您可以跳过引用的列名称

关于spring-boot - 如何使用Spring data JPA与数据库中的非实体表建立外键关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688810/

相关文章:

java - 将 Maven 转换为 gradle 后,Spring bootRun 失败并出现神秘错误

spring-boot - Spring Boot OAuth2 示例应用程序

spring-boot - 使用 Gradle 和 Spring Boot Gradle 插件时,如何从不同的模块复制 Spring Boot 重新打包的 jar?

java - 如何在where子句中使用枚举作为jpa中的常量检查

java - Hibernate 原生查询 - char(3) 列

java - OneToMany 关系上的 Spring-data-rest NullPointerException

java - Togglz 在功能切换时返回 403

java - 使用 SpringData 的 WebSphere 上的 ORA-00907

java - Spring Rest CRUD 保存外键

java - 如何处理属于2个父表中的1个具有多对多关系的子表的重复数据