我有一个关于JPA中实体声明的简单问题。 我有一个有2个外键的实体,它们不为null,并形成一个uniqueConstraint。首先,我在考虑一个由两个外键组成的组合键,但我听说这是一个传统设计,而不是推荐的设计新表的方式。如何根据JPA/Hibernate中的两个外键生成id?
所以我很感兴趣,如果Hibernate/JPA可以根据这两个外键自动生成id。比方说,我有以下实体:
@Entity
public class Foo {
@ManyToOne
private Bar bar;
private int i;
}
(我省略不为空和的UniqueConstraint标签,使代码更易读)
我知道我可以简单地添加一个id字段,与GeneratedValue,让我数据库生成密钥(在我的例子中,使用auto_increment的MySQL),但这对我来说似乎效率低下,因为它涉及查询数据库并要求它生成唯一的id值。
是否有一种方法,基于“Bar”类的id和整数“i”的值生成一个不是复合(即int或long类型)的id,因为它们有两个值已经形成一个独特的约束?
谢谢,伙计!这正是我需要的。 – eold 2010-07-19 12:22:55
非常好。谢谢! 通过谷歌搜索找到一个体面的例子几乎是不可能的。显然,除了这一个。 – kaqqao 2013-09-08 10:45:29