Per mysql
Ti consiglierei di seguire:
Al tuo tavolo messages
nel campo id
aggiungi la dichiarazione auto_increment
:
create table messages(
...
id int not null auto_increment,
...
primary key (id)
)
Alla dichiarazione di entità utilizzare
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
Questo parla con JPA usa la funzione di incremento automatico di MySQL
Se non è applicabile (ad esempio potresti voler creare un'altra entità correlata nella stessa transazione) usa la strategia TABLE (per maggiori dettagli vedi http://www.objectdb.com/java/jpa/entity/generated )