2012-12-20 27 views
0

我可以使用NEW JPQL操作映射查詢的結果裏面DTOJPQL新的運營商與本地查詢?

我測試此代碼:

Query query = em.createNativeQuery("SELECT NEW com.sim.dtos.entities.FreeLocation(t1.galaxie, t1.ss, t1.position) FROM ..."); 

List<FreeLocation> l = query.getResultList(); 

但我有例外:

[#| 2012-12-20T12:9:21.203 + 0100 |警告| glassfish3.1.2 |使用javax。 enterprise.system.container.web.com.sun.enterprise.web | _ThreadID = 79; _ThreadName =線程2; | StandardWrapperValve [面孔的Servlet]:PWC1406:Servlet.service()爲servlet的面孔的Servlet拋出異常 org.postgresql .util.PSQLException:ERREUR:ERREUR德syntaxe河畔歐Près區德«。 » 位置:15

那麼我可以使用NEW運算符與本機查詢嗎?

回答

1

本機查詢,顧名思義,是一個SQL查詢。它必須包含特定數據庫的有效SQL。

查詢將返回List<Object[]>,並且遍歷列表併爲每個Object[]數組創建FreeLocation的新實例應該是微不足道的。

+0

好的謝謝JB。所以我不能使用NEW構造函數運算符進行本地查詢?在Eclipse中,當我使用'List list = query.getResultList();' - >'Type safety時,我有警告:類型List的表達式需要未經檢查的轉換以符合列表'。這是正常的嗎?使用'列表'刪除警告,但我失去了自動鑄造 –

+0

是的,這是正常的,因爲該方法返回一個原始列表。你從文檔中知道它包含Object []。只要忽略警告:這是不可避免的。 –

+0

好的謝謝。我將在我的List上使用@SuppressWarnings(「unchecked」) –