【问题标题】:JPA/JPQL insertion & fetch in oneJPA/JPQL 插入和提取合二为一
【发布时间】:2014-04-20 10:28:20
【问题描述】:

我有一个带有自动递增 INT 主键的表。

我正在寻找价值 我刚刚插入的行的这个关键字段。

我能做到

1) 使用LAST_INSERT_ID()

2) 只是通过我插入的值来查询它。

但是,“感觉”有一种更直接的方式来检索该值。

在上面的 (1) 中,它给了我最后插入的行的值——不一定是我插入的那个。

在(2)中,仍然有一个额外的中间人。

我在 MySQL 数据库上使用 JPA/JPQL。 JPQL 没有 INSERT——我只能做插入 直接在 EntityManager 上。因此,我无法组合查询来获取字段值。我只能对已完成插入操作的同一事务进行查询。

有没有办法解决这个问题——获取你刚刚输入的行上的关键字段的值?

//==============================

编辑

我正在寻找如何获得新的自动增量密钥。我知道键值会自动递增和分配,而无需我做任何事情。我需要那个键值,因为我在其他地方有它的用处。

【问题讨论】:

    标签: mysql sql jpa auto-increment jpql


    【解决方案1】:

    JPA 支持自动生成的标识符(顺便说一句,这是推荐的策略)。只需用

    注释您的 ID 字段
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    

    JPA 会知道 ID 是由数据库生成的,使用 auto_increment 列,并且会透明地为您获取最后插入的 ID。

    【讨论】:

      猜你喜欢
      • 2013-03-01
      • 1970-01-01
      • 2011-04-13
      • 2016-03-21
      • 2014-08-09
      • 2021-10-02
      • 2015-07-15
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多