【问题标题】:get auto generated key, on save, using hibernate + spring mvc使用hibernate + spring mvc获取自动生成的密钥,保存
【发布时间】:2013-08-21 09:48:00
【问题描述】:

我正在使用 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);

}

作为新记录保存,新的主键生成自动增量(db.MySQL)。我想获取并返回与上述方法相关的新的自动递增值。

更新我!

【问题讨论】:

    标签: hibernate spring-mvc get return primary-key


    【解决方案1】:

    试试这个。这也适用于最新的 Hibernate(4.1 版)。

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

    【讨论】:

    • 既然1步就能搞定,为什么还要用2步呢?与persist 不同,save 返回实体标识符。
    【解决方案2】:
    【解决方案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;
        }
    

    【讨论】:

    • 尝试以通用方式编辑您的答案:玩家实体与问题无关
    猜你喜欢
    • 2013-10-20
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2012-05-22
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多