如何在Hibernate中建模复合键?

时间:2018-10-03 15:50:43

标签: java oracle hibernate spring-boot

我正在使用Hibernate在Java中建模模型类。但是数据库中的表已经存在,我想使用它。

问题是该表没有ID。此外,更糟糕的是,表中的元组由四列组成,它们的组合形成“一种标识/ ID”。另外,这些列对其他表也不是FK。

有没有一种方法可以使用java,hibernate等进行建模,而无需“修复/更改”表?

谢谢

1 个答案:

答案 0 :(得分:1)

您必须使用@EmbeddedId示例定义类:

您已经存在的实体:

@Entity
@Table(name = "ENTITY_EXAMPLE")
public class EntityExample {

    // this is your new class Embeddable
    @EmbeddedId
    private EntityExampleId id;

    //other fields


    //geters y seters
      //////////////////////////

 }

并且必须创建包含您的复合ID的4列的其他@Embeddable类

@Embeddable
public class EntityExampleId implements Serializable{

    private static final long serialVersionUID = 1L;

    @Column(name = "COLUMN1", nullable = false)
    private Integer col1; 

    @Column(name = "COLUMN2", nullable = false)
    private Integer col2; 

    @Column(name = "COLUMN3", nullable = false)
    private Date col3;

    @Column(name = "COLUMN4", nullable = false)
    private Date col4;

    //geters y seters
   //////////////////////////

}

有关更多信息,请参见参考