Para mysql
Te recomendaría lo siguiente:
En tu mesa messages
en el campo id
añadir declaración auto_increment
:
create table messages(
...
id int not null auto_increment,
...
primary key (id)
)
En el uso de declaración de entidad
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
Esto habla de la función de incremento automático de uso de JPA de MySQL
Si no es aplicable (por ejemplo, es posible que desee crear otra entidad relacionada en la misma transacción) use la estrategia TABLE (para obtener más detalles, consulte http://www.objectdb.com/java/jpa/entity/generated )