的JPA(Java持久性API)规范有2名不同的方式来指定实体组合键:@IdClass和@EmbeddedId.
我在我的映射实体上使用了两个注释,但对于那些不熟悉的人来说,结果却是一团糟JPA.
我想只采用一种方法来指定复合键.哪一个真的最好?为什么?
我是 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;
}
Run Code Online (Sandbox Code Playgroud)
当我表演时
...
session.save(c);
...
Run Code Online (Sandbox Code Playgroud)
然后抛出异常,A和B类型无法插入数据库。是否有可能以某种方式告诉hibernate不保存A对象而只保存A id?我的方法绝对错误吗?我应该在 C_PK 类中使用原始数据类型吗?