Java 如何使用上的子句创建Spring数据jpa存储库
假设我们有两个类A和B: A类:Java 如何使用上的子句创建Spring数据jpa存储库,java,mysql,sql,spring,repository,Java,Mysql,Sql,Spring,Repository,假设我们有两个类A和B: A类: public class A {private Long id;} B类: public class B {private Long id; private String name ; private Boolean isDeleted = false; } 是否有一种方法可以使连接查询的结果具有除条件ON之外的其他条件 我尝试了这个方法,但没有成功,编译器无法识别org.hibernate.hql.internal.ast.QuerySyntaxExcep
public class A {private Long id;}
B类:
public class B {private Long id; private String name ; private Boolean isDeleted = false; }
是否有一种方法可以使连接查询的结果具有除条件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,但它不返回结果。
请帮忙 您的查询已关闭,并且正在混合老式隐式连接语法和现代(首选)连接语法。以下是您应该使用的版本:
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")