2011-10-04 57 views
0

同時選擇查詢我有以下的PL/SQL查詢,執行插入,然後從休眠

INSERT INTO Table(ID,..................) 
VALUES(SEQ.nextval,....................); 
SELECT SEQ.currval ID FROM DUAL; 

我需要使用Hibernate來獲得ID。我正在使用以下查詢顯示錯誤,

.....getDataSession().createSQLQuery(hQuery).list() 

任何人都可以幫助我。

+2

請閱讀有關自動生成的ID的文檔。這應該由Hibernate自動處理。不要使用SQL查詢:你打敗了使用Hibernate的目的。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/ –

+0

我沒有使用任何類。我正在使用createSQLQuery。你可以請更新我的代碼,如果有可能或不可能使用createSQLQuery。我在休眠方面非常新穎。希望你能幫助我。 – user960567

+1

不要使用Hibernate作爲執行SQL查詢的手段。這不是它的目標。如果你想這樣做,使用直接的JDBC。如果您想使用Hibernate,請按照預期使用它,方法是定義持久實體並持久化它們。 –

回答

1

創建新對象並使用session.save()方法保存它將返回此對象ID。

Object object = new Object(); 
    //add object properties 
    object.setXXX(value); 
    //now save the object 
    String id =(String)getDataSession().save(object); 

希望它有幫助。

+0

我正在使用createSQLQuery。你能告訴我我應該在哪裏放置我的sql嗎?我沒有使用任何類 – user960567

+0

請閱讀@JB Nizen評論他是100%正確:)在這種情況下不要使用Hibernate這是ORM應用程序。 –