@Query(value="select rd.contractID as contractID, rd.gicCode as gicCode, count(rd) as ticketNo"
+ " from RawData rd"
+ " where rd.contractID is not null and ((rd.contractCostObject is null and rd.domestic = true) or (rd.mirrorSVO is null and rd.domestic = false))"
+ " group by rd.contractID, rd.gicCode")
但是生成的SQL查询是
select
rawdata0_.contractID as col_0_0_,
rawdata0_.gicCode as col_1_0_,
count(rawdata0_.id) as col_2_0_
from
RawData rawdata0_
where
(
rawdata0_.contractID is not null
)
and (
(
rawdata0_.contractCostObject is null
)
and rawdata0_.domestic=true
or (
rawdata0_.mirrorSVO is null
)
and rawdata0_.domestic=false
)
group by
rawdata0_.contractID ,
rawdata0_.gicCode
正如您所看到的,括号改变了,我相信两个查询中的条件并不相同。是虫子吗?使用hibernate和spring以及postgresql数据库。
和
运算符优先于或
运算符。
相当于
((rawdata0_.contractCostObject is null) and rawdata0_.domestic=true)
or
((rawdata0_.mirrorSVO is null) and rawdata0_.domestic=false)
我有一个与多个代码/标签实体关联的主jpa实体。 当我使用时,我可以看到Hibernate正在创建一个带有多个“left join”的SQL查询,这是我应该手工完成的。 有没有办法做到这一点,怎么做?
我有两个多对多映射的类:用户和主题。我想做的是得到所有的主题谁有提供的用户。有时(这是我最奇怪的部分)它会给我带来这样的错误: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第1行'))'附近使用正确的语法 返回的查询是: 我在这里漏掉了什么?完整的
我一直在理解Laravel查询生成器和纯SQL之间的融合。 我有2张桌子: user:包含具有主键的用户 User_Action:这是一个表,其中包含由和动作的组成的PRIMARYs记录。 ex: 使用者 用户操作 我的需要: 现在我想检索一个用户列表,其中包含每个用户的最新操作。因此,我只需要在从到的连接中获取一行,并且这一行必须是具有最新日期时间的一行。我的前任也是如此;我只想获取dateti
我有桌子: 行程:Trip_Num、Trip_Type等 用户的出差历史记录:Username、Trip_Num等 我正在用php做一个项目,需要为一个特定的用户(通过他的用户名)做一个SQL查询--需要知道用户的Trips历史表中Trip_Num的Trip_Type。 附上我的表格: 更新:我需要计算trip_type中的每个值。我的意思是我想看到“步行”-4次,“自行车”-3次,这很好?...
问题内容: 然而,从上述线程中摘录的一个重要观点是: Querydsl和jOOQ似乎是最流行和最成熟的选择,但是需要注意的一件事: 两者都依赖于代码生成的概念, 即为数据库表和字段生成元类。这有助于建立一个漂亮,干净的DSL,但是 在尝试为仅在运行时才知道的数据库创建查询时会遇到问题 。 除了仅使用纯JDBC +字符串串联外,还有什么方法可以在运行时创建查询吗? 我正在寻找的是一个Web应用程序,
我有两个实体AAA和BBB,如下所示 以及BBB实体作为 现在使用spring数据JPA本机查询,我需要一个如下的查询(使用JPARepository) 当执行时,它会给出以下异常 这里的bbb详细信息是键(BBBType)值(子实体)对的映射。如何根据数据jpa本机查询中的BBBType值查询映射的子实体?