Mysql – How to get the auto-increment primary key value in MySQL using Hibernate

auto-incrementhibernateMySQL

I'm using Hibernate to access MySQL, and I have a table with an auto-increment primary key.

Everytime I insert a row into the table I don't need to specify the primary key. But after I insert a new row, how can I get the relative primary key immediately using hibernate?

Or I can just use jdbc to do this?

Best Answer

When you save the hibernate entity, the id property will be populated for you. So if you have

MyThing thing = new MyThing();
...

// save the transient instance.
dao.save(thing);

// after the session flushes, thing.getId() should return the id.

I actually almost always do an assertNotNull on the id of a persisted entity in my tests to make sure the save worked.