jpa使用Sort排序加自定义sql,排序报错,是哪点问题?
有没有大佬可以看看怎么解决,想根据name来排序,结果sql中多了left.name
Service代码
Sort sort = Sort.by(Sort.Direction.DESC,"name"); Pageable pageable = PageRequest.of(0,10,sort);
List<UserInfo> list = userRepository.getAllList(pageable);
Repository代码
@Query(value = "select userinfo.id,userinfo.name,codeinfo.number as newnumber from userinfo " + "left join codeinfo on userinfo.id = codeinfo.id",nativeQuery = true)
List<UserInfo> getAllList(Pageable pageable);
报错信息多了个left
表结构
回答:
Sql里面添加表别名,或者把排序字段作为参数传到自定义sql
"select userinfo.id,userinfo.name,codeinfo.number as newnumber from userinfo left join codeinfo on userinfo.id = codeinfo.id",nativeQuery = true)
parse sql的时候,sql里面,left直接跟在表名后边,被认为了是表别名,
拼接sort部分的时候,jpql会自动补充表名别,出现了left.name
以上是 jpa使用Sort排序加自定义sql,排序报错,是哪点问题? 的全部内容, 来源链接: utcz.com/p/944813.html