看来这是hibernate3.2.6版中的一个缺陷,该缺陷仍未解决。碰到了这个JIRA。
@IdHibernate支持具有多个,但似乎在一对一映射下会失败,解决此问题的建议方法是使用单个CompositeKey,这意味着您将创建PK类
import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Embeddable;@Embeddablepublic class PKClass implements Serializable { @Column(name = "NUM") private String num; @Column(name = "INIT") private String init; //gettter setter here}然后在您的实体中将此用作ID
public class BEntity implements Serializable{ @Id private PKClass pkClass = null; @Column(name = "V_CNT") private Integer vcnt; //{{{some column omitted}}}//}public class AEntity implements Serializable{ @Id private PKClass pkClass = null; @oneToOne @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name="NUM", referencedColumnName="NUM"), @PrimaryKeyJoinColumn(name="INIT", referencedColumnName="INIT") }) private BEntity bEntity;}


