java - Jpa返回对象必须是与Entity类么?
迷茫
迷茫 2017-04-18 10:56:32
0
1
855
  @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类)
有大神知道对么?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(1)
伊谢尔伦

L'erreur que vous avez signalée ici est que l'instruction de requête a renvoyé un tableau Object[]. Jpa a essayé de le convertir en votre objet personnalisé, mais a échoué. Vous pouvez essayer la méthode suivante :

.
  1. Utilisez la syntaxe de select new + le nom complet de la classe de l'objet,
    où Perso est une entité gérée par EntityManager, et PersonResult est une entité personnalisée

    @Query(select new com.xx.yy.PersonResult(p.id,p.name,p.age) from Person p)
     List<PersonResult> findPersonResult();
  2. Utilisez le tableau Object[] pour recevoir des données. Chaque valeur d'élément dans Object[] est la valeur de la colonne correspondante

    @Query(select p.id,p.name,p.age from Person p)
     List<Object[]> findPersonResult();
  3. Trouvez d'abord Person et convertissez-la en PersonResult à l'aide du code Java

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal