异常内容如下:
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的保留字段,java的命名规范是驼峰形式,所以下划线首先是不符合规范的,但是每个人写代码都有自己的习惯,规范这个东西毕竟不是强制性的,不按照规范写也不会报错,所以遇到这种情况,我们还是得需要处理下的。
这个问题的解决办法有两种:
1、修改自己的pojo的字段为驼峰形式,排序字段参数修改为cpuUsage,即可。
private Stirng cpuUsage;
2、pojo字段不变,排序字段的参数修改为cpu__usage,采用双下划线的方式来抵消的jpa对_下划线的处理。
个人建议:如果在项目初始几点,修改字段对其他功能代码影响较少,建议使用第一种方式,从根本上解决问题,如果工程体积比较大,牵一发而动全身,那么建议还是采用第二种方式处理。当遇到排序的时候,一定记得使用
str = str.replace("-","--");
特殊处理一下。
每天进步一点点,坚持带来大改变。