原文地址:https://blog.csdn.net/earthhour/article/details/79271816
實體類字段定義:
private String sku_no;dao中接口名定義:
Goods findBySkuNo(String skuNo);spring-data按照接口方法定義的名字(默認認為是駝峰寫法)skuNo去實體類查找對應字段,當找不到時,就報錯了:
org.springframework.data.mapping.PropertyReferenceException: No property skuNo found for type Goods! Did you mean 'sku_no'?
spring-data規范要求dao中的findBy***,必須和實體字段名稱一致,例如findByUdateTime,實體中也要是private String udateTime; 實體字段命名不能是sku_no這種格式,這個不符合駝峰規范。
當然,萬事都有解決的辦法,如果你非要使用自定義格式的字段,那么就需要特殊處理一下了。
@Query("{\"bool\" : {\"must\" : {\"term\" : {\"sku_no\" : \"?0\"}}}}") Goods findBySkuNo(String skuNo);