J2-1 JPA Composite key

Summary

问题

一个id键,一个外键,我想把他俩弄成一个composite primary key。
虽然网上已经有很多教程,但是很多用起来会改变代码结果或是数据库结构。所以我使用了IdClass来解决问题,它仅仅引入增量代码来解决问题:

Steps:

  1. Create an Id class.
    1. @Data @AllArgsConstructor @NoArgsConstructor public class MyIdClass implements Serializable { private Long id; private Long id2; } @IdClass(MyIdClass.class) class dataObject { }
  1. Add two @Id annotations:
    1. @IdClass(MyIdClass.class) class dataObject { @Id Long id; @Id @Column(name = "FOREIGN_ID", nullable = false) Long id2; @ManyToOne(optional = false) @JoinColumn( name = "FOREIGN_ID", referencedColumnName = "REFERENCED_ID", insertable = false, updatable = false) private ReferencedObject referencedObject; }