java - Jpa返回對象必須是與Entity類么?
問題描述
@Query(value = 'SELECT id as topicId,content FROM bbs_topic WHERE create_time BETWEEN ?1 AND ?2',nativeQuery = true) List<IndexObject> getBbsTopicListByDate(Date fileupdateDate, Date topiclastupdate);
其中IndexObject 是顯示層vo。然后報錯
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.Object[]] to type [com.wayne.common.lucene.entity.IndexObject] for value ’{59, 再發表一次看看那}’; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.Integer] to type [com.wayne.common.lucene.entity.IndexObject]
度娘了一下懷疑 jpa返回對象必須是與Entity類相關(Entity就是配置了Java類與數據庫映射的Java類)有大神知道對么?
問題解答
回答1:你這里報的錯是查詢語句返回了一個Object[]數組,Jpa嘗試轉換成你自定義的對象,但是失敗了,可以試試以下的方式:
使用select new +對象全類名 的語法, 此處的Perso 為EntityManager 管理的實體,PersonResult為自定義的實體
@Query(select new com.xx.yy.PersonResult(p.id,p.name,p.age) from Person p) List<PersonResult> findPersonResult();
使用Object[]數組來接收數據 ,Object[]中的每一個元素值就是對應列的值
@Query(select p.id,p.name,p.age from Person p) List<Object[]> findPersonResult();
先查出Person ,用java代碼轉換成PersonResult
相關文章:
1. Java反射問題:為什么android.os.Message的recycleUnchecked方法不能通過反射獲取到?2. html5和Flash對抗是什么情況?3. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現4. javascript - vue-resource中如何設置全局的timeout?5. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?6. javascript - 在 vue里面用import引入js文件,結果為undefined7. 前端 - node vue webpack項目文件結構8. php如何獲取訪問者路由器的mac地址9. php - 微信開發驗證服務器有效性10. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙
