复合主键,不具有原始属性

时间:2011-10-15 14:02:28

标签: java hibernate java-ee composite-primary-key

我是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类中使用原始数据类型吗?

1 个答案:

答案 0 :(得分:1)

您应该在C_PK中的A和B引用上添加@ManyToOne(或OneToOne)连接列。

@Embeddable
class C_PK {
    @ManyToOne
    A a;
    @ManyToOne
    B b;
}