get auto generated key, on save, using hibernate + spring mvc

浪尽此生 提交于 2019-12-19 09:07:53

问题


I am using Spring MVC + Hibernate

@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;

// save
public <T> int save(T entity) throws DataAccessException {
    Session session = sessionFactory.getCurrentSession();
    session.save(entity);

}

As New Record Save , New Primary Key generated which in auto increment (db.MySQL). I want to get and return the new auto incremented value with respect to the above method.

Update me !


回答1:


Save method should return generated ID:

http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html#save(java.lang.Object)




回答2:


Try this instead. This works with latest Hibernate (version 4.1) also.

session.persist(object);
object.getId();



回答3:


  //assumption: this method is adding a player into database and returns generated player id
    //Here player is object of class Player 
    public int addPlayer(Player player){
            int player_id;  //variable to store generated ID
            Session session = sessionFactory.openSession();
            session.beginTransaction();
            session.persist(player);  //adding player
            player_id=player.getplayer_id();  //getplayer_id is the getter method for the variable player_id
            session. getTransaction().commit();
            session.close();
            return player_id;
    }


来源:https://stackoverflow.com/questions/18354157/get-auto-generated-key-on-save-using-hibernate-spring-mvc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!