我是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类中使用原始数据类型吗?
答案 0 :(得分:1)
您应该在C_PK中的A和B引用上添加@ManyToOne
(或OneToOne
)连接列。
@Embeddable
class C_PK {
@ManyToOne
A a;
@ManyToOne
B b;
}