有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以为父表中的外键列定义不同的类型吗?

我需要以代码中的关系连接到postgreSQL数据库。 问题在于表“b”中的数据库“id”是“bigint”,表“a”中的“b_id”是“integer”,prod db不在我的控制范围内,因此我无法更改它

“a”中的“b_id”没有定义为外键,这可能就是postgre允许外键的原因

正如预期的那样,hibernate抛出“找到[int4(类型#整型)],但需要[INTEGER(类型#整型)]”

如果我通过hibernate创建表,它会将表“a”中的“b_id”定义为预期的“bigint”

在不更改数据库类型的情况下验证模式的最佳方法是什么

@Entity
@Table(name = "a")
public class A {

    @ManyToOne
    @JoinColumn(name = "b_id")
    @NotNull
    private B bId;

    ...
}

@Entity
@Table(name = "b")
public class B {

    @Id
    private Long id;

    ...
}

共 (1) 个答案

  1. # 1 楼答案

    可以在A类中使用columnDefinition元素

    @Entity
    @Table(name = "a")
    public class A {
    
        @ManyToOne
        @JoinColumn(name = "b_id", columnDefinition = "int")
        @NotNull
        private B bId;
    
        ...
    }