Mysql
 sql >> Database >  >> RDS >> Mysql

Spring data JPA solo una chiave composita è un problema con incremento automatico

Il tuo @Id JPA non è necessario che corrisponda alle colonne PK del database. Finché è unico, questo è tutto ciò che conta.

Da https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing :

Poiché è garantito che una colonna di incremento automatico sia unica, utilizza semplicemente gender_key come @ID e map id come una normale colonna.

@Entity
@Table(name = "employee")
public class employee {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY) 
   private int genderKey;

   @Column
   private int id;

}

Ad essere onesto, troverei comunque il tuo schema confuso.

Suggerirei anche di leggere quanto segue:

https://www.javatpoint.com/java-naming-conventions