Pour mysql
Je vous recommande de suivre :
A votre table messages
au champ id
ajouter la déclaration auto_increment
:
create table messages(
...
id int not null auto_increment,
...
primary key (id)
)
À l'utilisation de la déclaration d'entité
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
Cela parle à JPA d'utiliser la fonction d'auto-incrémentation de MySQL
Si cela n'est pas applicable (par exemple, vous pouvez créer une autre entité associée dans la même transaction), utilisez la stratégie TABLE (pour plus de détails, voir http://www.objectdb.com/java/jpa/entity/generated )