我有两个具有嵌套复合主键的类(B
的复合 PK 包括 A
的复合 PK)
class A {
@EmbeddedId
APk aId;
}
@Embeddable
class APk {
@Column
Long x;
@Column
Long y;
}
class B {
@EmbeddedId
BPk bId;
}
知道不建议在 hibernate 中使用复合主键:为 B
实现主键类型的推荐方法是什么?
替代方案 1 - 嵌入 A 的 PK?
替代方案 2 - 或者在更扁平的实现中声明所有 3 个属性?
@Embeddable
class BPk {
// Alternative 1
@Embedded
APk aId;
@Column
Long z;
}
@Embeddable
class BPk {
// Alternative 2
@Column
Long x;
@Column
Long y;
@Column
Long z;
}
最佳答案
这两种选择之间没有太大区别。如果需要,您将能够在这两种情况下覆盖属性的映射。如果 APk 被重复使用多次,则替代方案 1 会更好。否则,请使用替代方案 2 以保持简单。
关于java - Hibernate 嵌套嵌入式主键还是平面字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403617/