Jpa通过Pageable分页查询时,如果排序字段含有下划线会抛出异常

异常内容如下:

Caused by: org.springframework.data.mapping.PropertyReferenceException: 
No property cpu found for FusionHost Did you mean 'ip?

 我的pojo的字段:

@Column(name = "CPU_USAGE", length = 12)
	private float cpu_usage;

排序的参数我传的是cpu_usage,

经过百度了解到_是jpa的保留字段,这个问题的解决办法有两种:

1、修改自己的pojo的字段为驼峰形式,排序字段参数修改为cpuUsage,即可。

private Stirng cpuUsage;

2、pojo字段不变,排序字段的参数修改为cpu__usage,采用双下划线的方式来抵消的jpa对_下划线的处理。

 

个人建议:如果在项目初始几点,修改字段对其他功能代码影响较少,建议使用第一种方式,从根本上解决问题,如果工程体积比较大,牵一发而动全身,那么建议还是采用第二种方式处理。当遇到排序的时候,一定记得使用

str = str.replace("-","--");

特殊处理一下。

你可能感兴趣的:(个人随笔)