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

在jOOQ中插入记录而不指定列名

欧阳昊阳
2023-03-14

我有一个表USER\u ROLES,有5列。此外,还有一个类UserRole,其字段和名称的数量与USER\u角色相同。

我试图插入一行而不指定列名:

    UserRole ur = new UserRole();
    // UserRole fields setting

    create.insertInto(USER_ROLES).values(ur).execute();

但是当我尝试创建行时,我得到了这个错误:

值的数量必须与字段的数量相匹配

我必须指定列名吗?

共有1个答案

孙岳
2023-03-14

如果您已经生成了用户角色记录,并且您的用户角色类遵循默认记录映射器定义的命名约定,那么您可以将自定义用户角色内容加载到记录中,如下所示:

UserRole ur = new UserRole();
// ...
UserRoleRecord rec = new UserRoleRecord();
rec.from(ur);
create.insertInto(USER_ROLES).set(rec).execute();
 类似资料:
  • 目前我正在从pojos列表映射到记录,我希望能够一次插入多行。我如何在JOOQ中用一个事务做到这一点? 我曾尝试将列表放入“值”中,但出现异常“值的数量必须与字段的数量匹配”

  • 问题内容: 在我们的数据库中,有一个表,该表有80多个列。它具有一个主键,并且身份插入已打开。我正在寻找一种方法,可以将 除 来自不同DB中相同表的主键列之外的所有列插入该表中。 这可能吗? 问题答案: 您实际上可以很容易地做到这一点: 只要您在“ YourOtherBigTable”中具有“身份插入”且列完全相同,就可以了。

  • 问题内容: 我正在尝试将Envers集成到我的项目中。我正在使用Hibernate-envers 3.5.5-Final,Hibernate-core 3.5.5-Final,spring 3.0.7.RELEASE。 对于DAO层,我使用的是GenericDaoHibernate类。 我的applicationContext.xml包含: 创建带注释的类的审核表,但是通过在实体表中添加或更新一行

  • 我试图在我的表中插入一条新记录 DSLContext类型中的方法newRecord(Table, Object)不适用于参数(String, ModelBook) 但是和这个一样:http://www.jooq.org/doc/2.5/manual/sql-execution/fetching/pojos/ 所以我不能做:

  • 问题内容: 我遵循“ 是否可以编写数据类型转换器来处理postgresJSON列”中的答案? 实现nodeObject转换器。 然后,我尝试使用可更新的记录来插入一条记录,但出现了 “ org.jooq.exception.SQLDialectNotSupportedException:方言POSTGRES不支持类型为org.postgresql.util.PGobject的类”。 我该如何解决?

  • 所以我只使用Jooq来构建查询,而不是执行查询,如下所示: 对象可以执行查询conn.asyncExecute(org.jooq.query query)。所以我的问题是,如何创建类型为org.jooq的批插入查询。查询?具体来说,给定一个列表 请注意,我知道其他问题询问如何使用Jooq进行批处理插入,但他们使用Jooq执行查询就像下面Jose Martinez的回答一样,而这里我只使用Jooq构