当前位置: 首页 > 面试题库 >

将Hibernate @Formula转换为JOOQ字段

林英锐
2023-03-14
问题内容

我正在将整个数据库访问层从Hibernate重写为JOOQ,并且遇到以下问题。

使用@Formula批注对JPA模型之一进行批注,如下所示:

@Formula("fee1 + fee2 + fee3 + fee4")
private BigDecimal fee5;

在代码的后面,对数据库进行JPA查询,该数据库将 Fee5 与参数进行比较:

SELECT ... FROM ... WHERE fee5 > input;

上面的查询如何转换为JOOQ DSL?


问题答案:

我设法通过以下JOOQ查询解决了该问题:

BigDecimal input = ...;
Field<BigDecimal> fee5 = TABLE.FEE1.add(TABLE.FEE2).add(TABLE.FEE3).add(TABLE.FEE4).as("fee5");
Condition cond = fee5.greaterThan(input);


 类似资料:
  • 我已经看到,当我们使用或时,JOOQ可以自动返回POJO 但是有可能将复杂查询的结果转换成多个POJO吗? 我测试了方法,它工作得很好。但我没有支持对象。

  • 我正在使用jooq的DSL。在我的Java代码中选择,我有需要从字符串中确定索引的场景。使用获取所需的索引值作为字符串,但DSL中不支持将其转换为数字的方法。示例: 嵌套的子字符串需要转换为数字

  • 正如在这里被问及的,这个#58538732的后续问题 根据Lukas Eder的建议,我编写了一个,将转换为 现在看起来如下所示 出现以下错误消息: 线程“main”java.lang中出现异常。错误:未解决的编译问题: 无法访问QueryFeaturesTask类型的封闭实例。必须使用QueryFeaturesTask类型的封闭实例限定分配(例如,x.new A(),其中x是QueryFeatu

  • 在我的Oracle数据库中,我有存储为VARCHAR的数量值。从数据库中检索记录时,我希望将它们映射到一个POJO,其中金额值表示为double。不幸的是,我不能使用强制类型,因为在数据库中,所有内容都存储为VARCHAR,并且没有模式将列标识为包含金额值的列。 我正在查看jOOQ转换器,这似乎是我想要的。因此,我为此创建了一个jOOQ转换器: 然而,每当我想使用将数据库记录映射到我的POJO时,

  • 我有一个字符串(jsonData)通过Jackson对象映射器映射到json,如下所示,映射到JaxB。 我能够很好地映射到上面的字符串。然而,我在映射到jooq JSON对象时遇到了问题。我想我现在必须将jsonData转换为jooq JSON。 我该怎么做? 或者我必须创建某种包装? 由jooq配置的DTO

  • 问题内容: 是否可以执行检查Date实例的字符串表示形式的请求。例如 检索日期为天12或月12或年12的日期,其中“ dateField”是java.util.Date的实例 问题答案: 我遇到了同样的问题,这是我做的: 首先,我创建了自己的Criterion实现: 然后,当我将条件放在一起时,我就用它: 就是这样。请注意,此实现 是与 语言环境相关的(在这种情况下为pt_BR),并且适用于具有t