Seu JPA
@Id
não precisa corresponder à(s) coluna(s) PK do banco de dados. Desde que seja único, isso é tudo o que importa. De https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing :
Como sua coluna de incremento automático é garantida como única, basta usar gender_key como seu
@ID
e map id como uma coluna normal. @Entity
@Table(name = "employee")
public class employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int genderKey;
@Column
private int id;
}
Para ser honesto, eu acharia seu esquema confuso no entanto.
Sugiro também a leitura do seguinte:
https://www.javatpoint.com/java-naming-conventions