簡體   English   中英

如何使用對象查詢語言從查詢中獲取結果列表

[英]how to get a result list from query using Object Query Language

我正在使用JPA / Hibernate,我想知道如何使用createquery檢索列表。 我努力了 :

EntityManagerFactory emf=Persistence.createEntityManagerFactory("JiraMapPUKPI");  
EntityManager em= emf.createEntityManager();
EntityTransaction entr=em.getTransaction();
entr.begin();
Query multipleSelect =em.createQuery("select distinct k.kpiName FROM Kpi k ,ProfilUser p ,AssociationKpiProfil a WHERE p.profilUserId= :w and p.profilUserId= a.profilUser and a.kpi=k.kpiId " ).setParameter("w", userid);

但后來我不能使用:

List userList = (List)multipleSelect.getResultList();

因為multipleSelect不包含getResultList方法

我也嘗試過:

   javax.persistence.Query multipleSelect= em.createQuery("select k.kpiName FROM Kpi k ,ProfilUser p ,AssociationKpiProfil a WHERE p.profilUserId= :w and p.profilUserId= a.profilUser and a.kpi=k.kpiId " );
   multipleSelect.setParameter("w", userid);
    List usrpro= multipleSelect.getResultList();

但是出現此錯誤:

EL Warning]: 2011-06-21 08:53:08.81--UnitOfWork(6850900)--Exception [EclipseLink-4002]   (Eclipse Persistence Services - 2.2.0.v20110202-r8913):    org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have     an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AND (t3.KPI_ID = t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID)' at line 1
Error Code: 1064
Call: SELECT t0.KPI_NAME FROM association_kpi_profil t3, profil_user t2, profil_user  , kpi t0 WHERE ((((t1.PROFIL_USER_ID = ?) AND (t1.PROFIL_USER_ID = )) AND (t3.KPI_ID =  t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID))
bind => [1 parameter bound]
Query: ReportQuery(referenceClass=Kpi sql="SELECT t0.KPI_NAME FROM association_kpi_profil t3, profil_user t2, profil_user t1, kpi t0 WHERE ((((t1.PROFIL_USER_ID = ?) AND (t1.PROFIL_USER_ID = )) AND (t3.KPI_ID = t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID))")

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have  an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AND (t3.KPI_ID = t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID)' at line 1
Error Code: 1064
Call: SELECT t0.KPI_NAME FROM association_kpi_profil t3, profil_user t2, profil_user    t1, kpi t0 WHERE ((((t1.PROFIL_USER_ID = ?) AND (t1.PROFIL_USER_ID = )) AND (t3.KPI_ID = t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID))
bind => [1 parameter bound]
Query: ReportQuery(referenceClass=Kpi sql="SELECT t0.KPI_NAME FROM   association_kpi_profil t3, profil_user t2, profil_user t1, kpi t0 WHERE ((((t1.PROFIL_USER_ID = ?) AND (t1.PROFIL_USER_ID = )) AND (t3.KPI_ID = t0.KPI_ID.t0.KPI_ID)) AND (t2.PROFIL_USER_ID = t3.PROFIL_ID))")
errrrrs
list kpiiiiiiiinull

請問我該怎么做? 謝謝

Hibernate生成的查詢不正確。 t1.PROFIL_USER_ID參數不存在。 嘗試檢查您的映射,並使用JOIN而不是equals。

提取列表<object> Java / Spring Boot 查詢結果<div id="text_translate"><p>我想在查詢中獲取結果的值。</p><p> 這是我的查詢/存儲庫文件:</p><pre> @Query("select p.name, p.contact_no, p.email_address, p.time_submitted, p.date_due from Application p where p.application_number like?1") List<Application> getApplicationSummaryInfo(String application_number);</pre><p> 服務:</p><pre> public List<Application> getApplicationSummaryInfo(String application_number);</pre><p> 服務實現:</p><pre> @Override public List<Application> getApplicationSummaryInfo(String application_number) { return (List<Application>)applicationRepository.getApplicationSummaryInfo(application_number); }</pre><p> Controller:</p><pre> List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no);</pre><p> 我只知道如何使用 foreach 在 jsp 文件中訪問它。 但我想訪問我的 controller 文件中的字段。</p><p> 我試過這樣做:</p><pre> List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no); System.out.println(app_info.get(0));</pre><p> 我得到這個結果:</p><pre> [Ljava.lang.Object;@28bf8e6e</pre><p> 然后我嘗試獲取確切的“名稱”字段值</p><pre>List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no); System.out.println(app_info.get(0).getName());</pre><p> 但我得到這個錯誤</p><pre>java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class com.pckg_name.model.Application ([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; com.rtc_insurance.model.Application is in unnamed module of loader 'app')</pre><p> 真的希望你能幫助我。 謝謝!</p></div></object>

[英]Extract List<Object> result from query in Java / Spring Boot

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何獲取列表<object[]>來自使用 Spring Jdbc 的查詢</object[]> 如何從清單中投射 <Objects> 使用Hibernate查詢語言時? 從查詢中獲取結果作為自定義對象列表 如何在不使用hql,jpql查詢的情況下從簡單Java中的多個類的查詢中獲取結果 提取列表<object> Java / Spring Boot 查詢結果<div id="text_translate"><p>我想在查詢中獲取結果的值。</p><p> 這是我的查詢/存儲庫文件:</p><pre> @Query("select p.name, p.contact_no, p.email_address, p.time_submitted, p.date_due from Application p where p.application_number like?1") List<Application> getApplicationSummaryInfo(String application_number);</pre><p> 服務:</p><pre> public List<Application> getApplicationSummaryInfo(String application_number);</pre><p> 服務實現:</p><pre> @Override public List<Application> getApplicationSummaryInfo(String application_number) { return (List<Application>)applicationRepository.getApplicationSummaryInfo(application_number); }</pre><p> Controller:</p><pre> List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no);</pre><p> 我只知道如何使用 foreach 在 jsp 文件中訪問它。 但我想訪問我的 controller 文件中的字段。</p><p> 我試過這樣做:</p><pre> List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no); System.out.println(app_info.get(0));</pre><p> 我得到這個結果:</p><pre> [Ljava.lang.Object;@28bf8e6e</pre><p> 然后我嘗試獲取確切的“名稱”字段值</p><pre>List<Application> app_info = applicationService.getApplicationSummaryInfo(application_no); System.out.println(app_info.get(0).getName());</pre><p> 但我得到這個錯誤</p><pre>java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class com.pckg_name.model.Application ([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; com.rtc_insurance.model.Application is in unnamed module of loader 'app')</pre><p> 真的希望你能幫助我。 謝謝!</p></div></object> 在Hibernate Query Language中,是否可以從Inner Query的結果中進行選擇? 如何使用 Hibernate 使用通配符查詢搜索 output 結果 object 列表 為什么我不能從查詢中獲得結果列表? 如何使用HQL(休眠查詢語言)獲取列的最后一個值 根據查詢結果列表構造JSON對象
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM