java - 如何使用 ON 子句创建 Spring 数据 jpa 存储库
问题描述
假设我们有两个类 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,但它不返回结果。请帮忙。
解决方案
您的查询已关闭,并且正在将老式隐式连接语法与现代(首选)连接语法混合在一起。这是您应该使用的版本:
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")
推荐阅读
- javascript - 如何检查鼠标是否离开页面?
- discord.js - 此错误“DiscordAPIError:缺少权限”不会停止
- ms-word - 如何在长字符串上循环搜索?
- c++ - 如何取消设置 std::cout 精度?
- java - 尝试从 Raspberry Pi 流式传输视频时,Android 应用程序崩溃
- javascript - 组件正在更改要控制的文本类型的不受控输入?
- c# - 我创建了一个空结构并在字典中添加了这种类型的变量:为什么编译器编译代码并且在运行时出现重复异常?
- kubernetes - Kataocoda 上的 Kubeedge - 版本“v1”中类型“节点”不匹配
- c++ - 为什么 {fmt} 比 std::stringstream 慢?
- python - selenium python 使用无头 Chrome 生成图像的数据 uri