hibernate多主键怎么自动生成表结构

Hibernate中,可以使用@Embeddable@EmbeddedId注解来定义多个主键,并且自动生成表结构。

首先,创建一个表示联合主键的类,使用@Embeddable注解标注该类。在该类中定义多个主键属性,并重写equals()hashCode()方法。

@Embeddable
public class MyPrimaryKey implements Serializable {
    private int primaryKey1;
    private int primaryKey2;

    // Getters and Setters

    @Override
    public boolean equals(Object o) {
      // 自定义equals方法
    }

    @Override
    public int hashCode() {
      // 自定义hashCode方法
    }
}

然后,在包含该联合主键的实体类上使用@EmbeddedId注解,并将联合主键类作为属性添加到实体类中。

@Entity
@Table(name = "my_table")
public class MyEntity {

    @EmbeddedId
    private MyPrimaryKey id;

    // Getters and Setters
}

最后,运行Hibernate自动建表时,会自动根据联合主键生成相应的表结构。

注意:

  • 联合主键类必须实现Serializable接口。
  • 在重写equals()hashCode()方法时,需要根据属性进行比较和计算哈希值。

你可能感兴趣的:(hibernate,java,后端)