如何在JPA / Hibernate中基于两个外键生成id?
我在JPA中有一个关于实体声明的简单问题。
我有一个带有2个外键的实体,它们不是null并且形成uniqueConstraint。首先,我在考虑一个由两个外键组成的复合键,但我听说这是一个遗留设计,而不是设计新表的推荐方法。
所以我感兴趣的是Hibernate / JPA能否根据两个外键自动生成id。假设我有以下实体:
@Entity
public class Foo {
@ManyToOne
private Bar bar;
private int i;
}
(我省略了not null和uniqueConstraint标签,以使代码更具可读性)
我知道我可以简单地使用GeneratedValue添加一个id字段,并让我的数据库生成密钥(在我的示例MySQL中使用auto_increment),但这对我来说效率低,因为它涉及查询数据库,并要求它生成唯一的id值。
有没有一种生成id的方法,它不是复合的(即int或long类型),基于“Bar”类的id和整数“i”的值,因为它们已经形成了这两个值独特约束?
没有找到相关结果
已邀请:
3 个回复
稍惮
在这里我假设Bar看起来像:
请注意,这会将bar_id_col映射两次。这是第二个引用中insertable = false,updatable = false的原因。 这很棘手,但如果你真的想这样做,那就有可能。 祝好运, J.
佩疵瓦
陈獭