2016-02-29 64 views
0

我想要一個Spring Data接口來返回一個非實體對象。Spring數據拋出一個異常:「找不到類型爲[Object]!的屬性[property_name]」。

我已經搜索了一下,發現一個解決方案,我應該使用帶有映射到非實體類的結果集的命名查詢。

但是,我確實resieve上述異常。什麼導致這種異常?

這是我執行的SQL結果集映射,並命名原生查詢:

@SqlResultSetMapping(
     name = "revenue", 
     classes = { 
       @ConstructorResult(
         targetClass = Revenue.class, 
         columns = { 
           @ColumnResult(name = "date"), 
           @ColumnResult(name = "revenue") 
         } 
       ) 
     } 
) 
@NamedNativeQuery(name = "calculateRevenueForGasStationName", 
     query = "select fueling.date, fueling.price*fueling.volume as revenue from gas_station " + 
       "left join fueling " + 
       "on gas_station.id = fueling.gas_station " + 
       "where fueling.date between ?1 and ?2 and gas_station.name=?3 " + 
       "group by fueling.date", 
     resultSetMapping = "revenue") 

這裏是春天的數據接口方法應該連接到name = "calculateRevenueForGasStationName"

@Query(nativeQuery = true) 
List<Revenue> calculateRevenueForGasStationName(Date from, Date to, String name); 
+2

你可以給我們完整的堆棧跟蹤? – JEY

+0

@AliDehghani它沒有幫助。 –

+0

您是否嘗試過'name =「Revenue.calculateRevenueForGasStationName」' –

回答

0

看來問題與您的班級屬性。您可以請重新訪問您的Revenue.class屬性詳細信息。

請確保 1)「日期」的屬性已經聲明爲java.util.Date 2)收入已經聲明爲雙 3)示例代碼

`@SqlResultSetMapping( 
name = "revenue", 
classes = { @ConstructorResult( 
targetClass = Revenue.class, 
columns = { 
@ColumnResult(name = "date", type = java.util.Date.class), 
@ColumnResult(name = "revenue",type = Double.class) 
}) })` 
相關問題