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线程为什么这样没有输出2. html - 开发android的调取我web页面 他之前用的是收费的浏览器包 显示是全的换了免费的浏览器包后 显示就不全 是什么原因啊3. 为什么javascript 18014398501093363 == 18014398501093364 返回ture4. 使用 CSS3 的 Media Query 浏览器会加载其他不同分辨率的 css 文件么5. javascript - SpringMVC返回值封装问题6. java - tomcat集群后日志怎么进行统一管理?7. 数据挖掘 - 如何用python实现《多社交网络的影响力最大化问题分析》中的算法?8. html5 - ionic运行在Android4.3及其以下的问题9. html5和Flash对抗是什么情况?10. javascript - 给js写的盒子添加css样式,css样式没起作用。
![php-_server-php_self - nginx $_SERVER[’PHP_SELF’] 得到重复路径是什么原因?](http://www.haobala.com/attached/image/news/202309/1123091c0c.png)
网公网安备