我需要像代码中那样以关系连接到 postgreSQL 数据库。 问题出在表“b”中的数据库“id”是“bigint”,表“a”中的“b_id”是“整数”,prod db 不在我的控制范围内,所以我无法更改它。
“a”中的“b_id”未定义为外键,这可能就是 postgre 允许的原因。
正如预期的那样,hibernate 抛出“found [int4 (Types#INTEGER)],但期待 [integer (Types#BIGINT)]”
如果我通过 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;
...
}
最佳答案
您可以使用 columnDefinition A
类中的元素。
@Entity
@Table(name = "a")
public class A {
@ManyToOne
@JoinColumn(name = "b_id", columnDefinition = "int")
@NotNull
private B bId;
...
}
关于java - 我可以为父表的外键列定义不同的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54748072/