Para
mysql
Eu recomendo que você siga:Na sua mesa
messages
no campo id
adicionar declaração auto_increment
:create table messages(
...
id int not null auto_increment,
...
primary key (id)
)
Na declaração de entidade use
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
Esta conversa com o JPA usa o recurso de incremento automático do MySQL
Se não for aplicável (por exemplo, você pode querer criar outra entidade relacionada na mesma transação) use a estratégia TABLE (para mais detalhes veja http://www.objectdb.com/java/jpa/entity/generated )