各位前辈,第一次用SpringJPA。现在实体类有一个字段是这样的:
private String movie_id;
而我想通过这个字段排序,继承PagingAndSortingRepository后,代码为:
Sort sort = new Sort(Sort.Direction.DESC,"movie_id");
Pageable pageable = PageRequest.of(0,PAGE_LIMIT,sort);
Page<MovieInfo> movieInfopage = movieInfoRepository.findAll(pageable);
可是报错了:
org.springframework.data.mapping.PropertyReferenceException: No property movie found for type MovieInfo!
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:92) ~[spring-data-commons-2.0.6.RELEASE.jar:2.0.6.RELEASE]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:356) ~[spring-data-commons-2.0.6.RELEASE.jar:2.0.6.RELEASE]
手动改movie_id为movieId后即可操作。
那肯定是框架无法识别下划线 ....
前辈们咋办!可以不用大改字段名么?
通过实验发现了,bean中的字段可以定义为驼峰,通过hibernate的命名策略可以自动把驼峰转化为下划线,然后Sort中需要的其实是bean中的字段。例如定义为movieId,数据会自动转为movie_id,然后会根据bean的字段也就是movieId去排序。