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