java - Java中用JPA组成的主键

标签 java jpa primary-key

有没有办法在Java中用JPA声明一个由两个字段组成的主键?

示例:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Id
private String identity;

主键是(id,身份)。

最佳答案

是的,您可以使用@IdClass注释指定一个类,该类将被称为组合键。

例如:

@Table('myTable')
@IdClass(ComposedKey.class)
public class myEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Id
    private String identity;

    private String otherFields;

}

public class ComposedKey implements Serializable {
    private long id;
    private String identity;

    //Getter / Setter

}

然后,您的 key 将是一个 ComlatedKey

关于java - Java中用JPA组成的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44670437/

相关文章:

java - MySQL Found_Rows() 返回正确值的两倍

java - Java 中的 ChromeDriver 实例化永远挂起?

java - 如何使用方法将两个数组添加在一起

sql-server - 创建带有主键的 View ?

mysql - 在 mysql 表 auto_increment 中创建一个 ID(事后)

php - 如何防止id被修改?

Java:具有填充形状的线条描边

java - JPA问题@OneToMany - 如何从数据库获取特定对象?

java - 查询异常 : ResultTransformer is not allowed for 'select new' queries

java - 如何将表与该表的实体类中 View 的一列连接起来