Search code examples
mysqlhibernateauto-increment

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


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?


Solution

  • 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.