【发布时间】:2015-04-22 02:36:58
【问题描述】:
我在我的 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 数据添加了别名“e.famChildName”。 我什至尝试以“f.famChildName”排序发送参数。但是,仍然没有运气,因为春季数据还添加了别名:“e.f.famChildName”。
我的问题:如何禁用 Spring 数据以自动添加别名来排序属性?有什么解决方法吗?
谢谢。
【问题讨论】:
-
没有人可以回答/解决我的问题吗??
标签: spring-data spring-data-jpa