当前位置: 首页 > 知识库问答 >
问题:

获取自动生成的密钥,保存时,使用HibernateSpringmvc

都建树
2023-03-14

我正在使用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)。我想获取并返回与上述方法相关的新的自动递增值。

更新我!

共有3个答案

曹成双
2023-03-14
  //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;
    }
许庆
2023-03-14

保存方法应返回生成的ID:

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

曾山
2023-03-14

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

session.persist(object);
object.getId();
 类似资料:
  • 问题内容: 如何使用MyBatis获取插入的生成密钥?我阅读了许多有关此问题的页面,但仍然被屏蔽,请问有人可以帮助我吗?这是我的代码: 桌子: 道: mapper.java: mapper.xml 怎么了?如何获得此插入的生成的密钥?谢谢! 问题答案: 如果要获取生成的主键,则应通过或传递参数。 调用映射方法时,将值映射。

  • 问题内容: 我不明白如何使用commons-dbutils获取自动生成的密钥? 问题答案: 您可以使用。下面是一个例子。给定一个名为的表,该表具有一个自动生成的主键列和一个名为的列,您可以执行以下操作:

  • 问题内容: 我正在使用 Java 应用程序,该应用程序应该在具有相同数据库架构的两个不同数据库上执行CRUD操作(使用 Hibernate 4.3.8)。有一个 MySQL (版本5.1.73)和一个 Oracle (11g Express Edition版本11.2.0.2.0-64位)数据库。 使用Hibernate Code Generation从数据库表中生成带有 JPA批注的 Java类

  • 我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id

  • 问题内容: 我想从行插入中检索自动生成的ID,但得到一个 这是代码: 这是PostgreSQL表: PostgreSQL支持自动生成的密钥,但是我得到了这个异常: 编辑:我试图这样做以获得自动生成的密钥: 但我得到了: ,虽然我认为 应该在插入行时调用 编辑: 插入行时正确创建了自动增量值 任何想法 ? 问题答案: 请注意,在较新版本的Postgres中,您需要使用 代替

  • 我以这种格式将私钥保存在DB中。 我需要从中提取公钥。openssl\u pkey\u get\u详细信息需要资源,但如何从字符串创建资源? 我试过这个 错误是openssl\u pkey\u get\u details()期望参数1是资源,给定布尔值 编辑1: 我试图从@kbarborak bellow获得解决方案,但$pk\u get是错误的: var_转储的输出为: