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("-","--");

特殊處理一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章