【发布时间】:2018-10-11 12:14:27
【问题描述】:
我有一个原生的Mysql 查询
select tl_id,c_name,m_name,u_first_name,t_name,
tl_logged_at,tl_minutes,tl_description
from users inner join clients on u_id=c_frn_owner_id
inner join matters on m_frn_client_id = c_id
inner join tasks on t_frn_matter_id = m_id
inner join task_logs on tl_frn_task_id = t_id
where c_id =2 and m_id=4 and t_id= 3 and u_id = 4
我可以为此编写 JPQL 而不是本机查询。但是如何使用JPA Specification 获得相同的查询,因为where 条件c_id、m_id、t_id 和u_id 中的列或字段是可选的。它们是提供给用户的过滤器选项。
可以使用if 条件生成本机查询。但它们很容易出现拼写错误和SQL Injections。
JPASpecification 的文档没有关于连接多个表的信息。
Spring Official JPA Specification Doc
我对@987654334@ 很陌生,所以任何指导都会很有价值。
【问题讨论】:
标签: mysql spring-boot spring-data spring-data-jpa