【问题标题】:how to create a Spring data jpa repository with a clause ON如何使用 ON 子句创建 Spring 数据 jpa 存储库
【发布时间】:2019-10-18 10:24:58
【问题描述】:

假设我们有两个类 A 和 B : A类:

public class A {private Long id;}

B 类:

public class B {private Long id; private String name ; private Boolean isDeleted = false; }

除了条件 ON 之外,有没有办法让 Join 查询的结果与其他条件一起出现 我试过这个但我不工作,编译器无法识别子句 ON org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token

 @Query( "SELECT new com.demo.DTO.resultsDTO(a.id) FROM A ate , B a  ON a.id = b.id WHERE b.isDeleted = false AND b.name = ?1  ")

我还尝试在 WHERE 子句中包含 a.id = b.id,但它不返回结果。 请帮忙。

【问题讨论】:

    标签: java mysql sql spring repository


    【解决方案1】:

    您的查询已关闭,并且正在将老式隐式连接语法与现代(首选)连接语法混合在一起。这是您应该使用的版本:

    SELECT new com.demo.DTO.resultsDTO(a.id)
    FROM A a
    INNER JOIN B b
        ON a.id = b.id
    WHERE
        b.isDeleted = false AND
        b.name = ?1;
    

    您更新的 Java 代码:

    @Query("SELECT new com.demo.DTO.resultsDTO(a.id) FROM A a INNER JOIN B b ON a.id = b.id WHERE b.isDeleted = false AND b.name = ?1")
    

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 2016-01-08
      • 2019-08-07
      • 1970-01-01
      相关资源
      最近更新 更多