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

回到顶部