5

我是 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不能插入数据库。是否有可能以某种方式告诉休眠不保存 A 对象而只保存 A id?我的方法绝对错误吗?我应该只在 C_PK 类中使用原始数据类型吗?

4

1 回答 1

2

您应该在 C_PK 中的 A 和 B 引用上放置一个@ManyToOne(或OneToOne)与连接列。

@Embeddable
class C_PK {
    @ManyToOne
    A a;
    @ManyToOne
    B b;
}
于 2011-10-15T17:43:31.543 回答