我在Postgres中有一個存儲過程。該過程具有4個OUT參數。通常使用JPA我無法得到結果。我想要做的是用該過程使用SELECT查詢。JPA Hibernate調用存儲過程
例如,如果我在pgAdmin的嘗試查詢:
SELECT * FROM get_results(爲arg0,ARG1等);
我得到一個結果行,其中包含4列,結果來自4個OUT參數。
但是當我嘗試在JPA中使用它時失敗。我想是這樣的:
Query q = em.createNativeQuery("SELECT * FROM get_results (arg0, arg1 etc)");
q.getSingleResult();
但它拋出一個java.lang.IllegalStateException [com.arjuna.ats.internal.jta.transaction.arjunacore.nosuchtx] [com.arjuna.ats.internal.jta.transaction.arjunacore.nosuchtx] No such transaction!
有什麼建議?
錯誤消息指向事務問題。其他原生查詢(如從表中選擇)在那個地方工作嗎? – mrab 2012-04-23 07:26:23
我用count來嘗試相同的查詢。 em.createNativeQuery(「SELECT count(*)FROM get_results(arg0,arg1 etc)」); q.getSingleResult(); 我得到了數字「1」,這是我期待的結果。所以它工作。但現在當我嘗試正常的查詢時,我得到: 「[ConnectionManager]強制事務完成時批處理器資源清理;忘記關閉ScrollableResults/Iterato r?」錯誤。 – Panos 2012-04-23 07:40:03