【问题标题】:SQL query TO JPQL oneSQL 查询 TO JPQL 一
【发布时间】:2017-09-27 13:10:48
【问题描述】:

我正在尝试转换这个 sql 查询:

SELECT *
    FROM event
    WHERE idEvent IN (SELECT idEventfk FROM userevent WHERE absence='1');

进入 JPQL 一个:

SELECT e FROM Event e where e.idEvent
IN (SELECT ue.idEventfk FROM userevent ue WHERE ue.absence='1'

但它返回 null 作为结果。关于错误的任何想法?

【问题讨论】:

  • 不提供实体?或者说当你执行上述操作时生成了什么 SQL?

标签: sql jpa jpql


【解决方案1】:

试试这个:

SELECT e.* FROM Event e where e.idEvent
IN (SELECT ue.idEventfk FROM userevent ue WHERE ue.absence='1')

【讨论】:

    【解决方案2】:

    如果 Event 实体中存在相关实体的对象,则可以加入它们以获得所需的结果:

    select e from Event e join e.userevent ue where ue.absence = '1'
    

    【讨论】:

      【解决方案3】:

      您可以使用EXISTS 子句:

      SELECT e FROM Event e 
      where exists 
        (SELECT ue FROM userevent ue WHERE e.idEvent = ue.idEventfk and ue.absence='1')
      

      【讨论】:

        猜你喜欢
        • 2013-09-17
        • 2019-03-19
        • 2021-10-09
        • 2011-06-12
        • 2011-09-29
        • 2015-03-02
        • 1970-01-01
        • 2013-06-11
        • 1970-01-01
        相关资源
        最近更新 更多