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

Jooq保存或更新方法返回错误

尚楚
2023-03-14

我正在尝试使用具有唯一约束“phone\u number\u key”的jooq和table实现save或update方法
我的代码:

var insertStep = dslContext.insertInto(Users.USERS)
        .set(Users.USERS.FIRSTNAME, user.getFirstname())
        .set(Users.USERS.PHONENUMBER, user.getPhoneNumber())
        .onConflict()
        .doUpdate()
        .set(Users.USERS.FIRSTNAME, user.getFirstname())
        .returningResult(Users.USERS.ID);
var record = insertStep.fetchOne();

但我得到了例外

错误:重复的键值违反唯一约束“phone_number_key”详细信息:key(“phoneNumber”)=(99999999)已存在。

我使用“.onDuplicateKeyUpdate()”方法时遇到了相同的错误
我使用postgres db
我做错了什么?

共有1个答案

郑浩博
2023-03-14

您在列PHONENUMBER上遇到了冲突,您正试图通过设置列FIRSTNAME来解决该冲突(尽管如此,设置与以前相同!),所以你不能指望这能解决冲突。

您必须提供一个操作来解决由phone_number_key唯一约束引起的冲突。

 类似资料:
  • 所以如果我对一个已经注册的条目调用那个方法,如果它发现一个改变了的属性,它就会更新它? 多谢了。

  • 我从教程中感觉到,返回一个可丢弃的,不应该改变方法返回类型。 以下是我的尝试: 使用时,一切都很好,直到我添加,然后函数返回类型更改为

  • 在第一次测试运行期间,如果我使用或而不是,则会发生以下错误(请参阅错误消息)。使用时,应用程序启动并工作时只会出现一个错误:“error o.h.e.j.e.i.jdbconvironmentimpl-无法从数据库java.sql.SQLException:数值溢出” 如果你能帮助我,我将非常高兴。不幸的是,以前的论坛报名没有成功。 应用程序 Oracle设置 HikariCP设置 登录中 JPA

  • 问题内容: 我正在尝试使用Hibernate插入或更新大数据。我有一个包含350k对象的列表,当我使用Hibernate时,要花费数小时才能插入所有数据。 我正在使用以下代码进行此操作。我的开发环境是JDK1.4和Oracle数据库。 我正在使用批处理更新,还设置了属性50,但这并没有帮助。 我的对象与另一个对象具有一对一的关系,因此在这种情况下使用StatelessSession可能会出现问题。

  • 问题内容: 我有一个用@Transactional注释的方法。我从Oracle数据库检索一个对象,更改一个字段,然后从该方法返回。我忘了保存对象,但是发现无论如何都会更新数据库。 applicationContext 我的方法 我的问题是为什么MyObject会持久保存到数据库? 问题答案: 因为hibernate将自动检测对 持久性 实体所做的更改并相应地更新数据库。hibernate参考手册的

  • 当更新其中一个表中的字段时,我很难制定一个jooq查询来返回两个表中的数据。(Postgres 9.6,jooq 3.11) 表DEVICE和CUSTOMER在外键约束设备上联接。CUSTOMERID=CUSTOMER.ID。 我想返回一个合格的device.id和设备客户的customer.secret,并更新device.stateIN_PROGRESS。资格由各种条款评估。 我开始用 这导致