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 https://www.objectdb.com/java/jpa/entity/generated )