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

使用jooq插入间隔数据

楚钊
2023-03-14

我有一个PostgreSQL表,其列名为test_interval,类型为interval。

test_interval interval
public final TableField<TestTable, YearToSecond> TEST_INTERVAL = createField(DSL.name("test_interval"), org.jooq.impl.SQLDataType.INTERVAL.nullable(false), this, "");
dsl.createTableIfNotExists(TestTable)
   .column(TestTable.TEST_INTERVAL)
   .execute()  

我想把数据插入到表中,数据的形式是:

val str = "0 years 0 mons 0 days 0 hours 15 mins 0.00 secs"   
dsl.insertInto(
    TestTable,
    TestTable.TEST_INTERVAL
).values(
    str
)

我得到的错误不能插入类型。如何使用JOOQ插入postgres间隔数据类型的数据?

共有1个答案

马祺
2023-03-14

您的test_interval列的类型为yeartosecond,因此必须插入该类型的值,而不是string类型的值。

只需调用YeartoSecond构造函数

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

  • 我正在Spring 4应用程序中使用jOOQ 3.8.4和PostgreSQL 9.5。我有下表和类型定义 然后我尝试使用jOOQ插入,即: 然后我得到: 我做错了什么? 更新 我尝试按照Lukas的建议重命名shop.money类型(从到),但我相信问题与模式有关。请参阅更新的错误。 也许类型中的类型是一个问题!

  • 问题内容: 我想表达以下声明: 子选择返回一行,其中包含两列(和),需要将其插入到target中。这样做的原因是,是的主键。是指(外键)。 这可能吗? 问题答案: 我不确定首先使用哪种SQL方言是否可能通过,但是您当然可以使用以下方式表达这种查询: 或与jOOQ

  • 给定一个包含枚举列的表,如下所示: 如何使用jOOQ插入到上述表中,而不为整个表生成Java代码?对于这个特定的实例,由于其他技术限制,我无法(目前)简单地生成代码。如果有帮助的话,我可以复制粘贴一段生成的代码(例如类型定义),但整个表太多了。 我尝试的是: > 根本不打字: 正如所料,这会引发不兼容的类型: :SQL[

  • 目前我正在从pojos列表映射到记录,我希望能够一次插入多行。我如何在JOOQ中用一个事务做到这一点? 我曾尝试将列表放入“值”中,但出现异常“值的数量必须与字段的数量匹配”

  • 我得到的数据集如下所示: 我想按时间字段对其进行分组,并获取每个时间间隔的MAX(openBid),并拥有最后5个间隔(在本例中为5分钟)。我使用这个查询: 结果如下: 我遇到的问题是,随着时间的推移,结果集中第一条记录的计数从1增加到5。在这个例子中,它是3。我希望我的查询在所有时间间隔内都有相同数量的记录。我认为问题是GROUP BY准时从集合的第一条记录开始。由于我正在执行ORDER BY