gpt4 book ai didi

java - 如何在不使用语句或 "LAST_INSERTED_ID"的情况下检索最后插入的键

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:04 26 4
gpt4 key购买 nike

我正在寻找一种方法,如何从通过“createNativeQuery”执行的插入中检索最后生成的键/ID,其方式类似于PreparedStatement中的“getGenerateKeys”。

正如我在第一段中所写的,我知道有可能使用实际上有效的PreparedStatement,并且我们将它用于一些不同的情况。我也知道我可以直接选择数据库并调用“LAST_INSERT_ID”或“@@Identity”,这也可以,但这是我想避免的一种方式。现在我一直在使用将行插入数据库,然后调用简单的“LAST_INSERT_ID()”并检索 ID。

我想避免这种情况,因为它在我开始测试 ProxySQL 之前一直有效,我猜它会通过连接/ session 执行一些操作,当我调用 LAST_INSERT 时,我只会得到零值(但是当我对预处理语句和 getGenerateKeys 尝试相同的操作时,它会起作用)

有数十个类似的堆栈主题,例如 this ,但我没有找到任何答案。

我一直在尝试 getResultList 和 getLastResult Query 方法,但没有任何方法能够成功检索最后生成的 id。

最佳答案

使用 JPA,ID 仅在刷新时生成。因此,如果您需要ID,请调用flush()来获取ID:

Entity en = new Entity();
en.setName("My Entity name");
em.persist(en);
em.flush();
System.out.println(en.getId());

关于java - 如何在不使用语句或 "LAST_INSERTED_ID"的情况下检索最后插入的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44901041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com