如何在弹出数据中禁用在pageable / sort中添加JPQL别名?

时间:2015-04-22 02:36:59

标签: spring-data spring-data-jpa

我在我的dao中使用@Query:

@Query("select e, f from Employee e, Family f " + "where e.employeeId = f.employeeId") public List<Object[]> getAll(Sort sort);

如上所述,我不会在员工和家庭中使用@onetomany / @manytoone。

当我想对Family实体的属性进行排序时,我遇到了问题。 假设famChildName是Family实体中的属性。

所以,在我的服务层,我这样称呼:

Sort sort = new Sort(new Sort.Order("famChildName")); dao.getAll(sort);

什么时候,我看到生成的JPQL:

select e, f from entity.Employee e, entity.Family f where e.employeeId = f.employeeId order by e.famChildName asc

多么惊讶,因为spring数据添加别名&#34; e.famChildName&#34;。 我甚至尝试在sort&#34; f.famChildName&#34;中发送参数。但是,仍然没有运气,因为春季数据也增加了别名:&#34; e.f.famChildName&#34;。

我的问题:如何禁用Spring数据自动为排序属性添加别名?对此有何解决方法?

感谢。

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题。我为它创建了一个错误报告,事实证明它已在快照版本中得到修复,因此可能会在Spring Data JPA的下一个版本中修复。

这是我提交的错误

https://jira.spring.io/browse/DATAJPA-726