我是 Java 和 Hibernate 的新手。我有复合键的问题。我正在尝试做这样的事情:
@Entity
class A {
@Id
int id;
}
@Entity
class B {
@Id
int id;
}
@Entity
class C {
@EmbeddedId
C_PK c_pk;
}
@Embeddable
class C_PK {
A a;
B b;
}
当我执行
...
session.save(c);
...
然后抛出异常,类型A和B无法插入数据库。是否有可能以某种方式告诉 hibernate 不保存 A 对象而只保存 A id?我的方法是否完全错误,我应该只在 C_PK 类中使用原始数据类型吗?
最佳答案
您应该在 C_PK 中的 A 和 B 引用上放置一个带有连接列的 @ManyToOne
(或 OneToOne
)。
@Embeddable
class C_PK {
@ManyToOne
A a;
@ManyToOne
B b;
}
关于java - 没有原始属性的复合主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778264/