簡體   English   中英

在Hibernate中調用SQL過程

[英]Calling SQL procedure in Hibernate

我在Java中具有以下方法,該方法應調用並執行SQL過程:

public void insertDocSubject(DocSubject docSubject) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        try  {
            session.beginTransaction();
            session.createSQLQuery("SELECT create_subject_relation(" + docSubject.getDocumentFk() + ", " + docSubject.getDocSubjectTypeFk() + ", " + docSubject.getSubjectFk() + ", " + docSubject.getDocSubjectRelationTypeFk() + ", '" + docSubject.getNote() + "');");
        } finally {
            session.getTransaction().commit();
            if(session.isOpen()) {
                session.close();
            }
        }
    }

運行它之后,什么也沒有發生,但是過程也沒有執行。 我還嘗試過手動運行該過程,然后按預期運行。

我還嘗試了一種在Google上閱讀的方法,該方法建議使用以下功能。

session.getNamedQuery("create_subject_relation").setParameter("doc_id", docSubject.getDocumentFk()).setParameter("sub_type", docSubject.getDocSubjectTypeFk()).setParameter("sub_id", docSubject.getSubjectFk()).setParameter("rel_type", docSubject.getDocSubjectRelationTypeFk()).setParameter("note", docSubject.getNote());

但是和第一種方法一樣,它沒有用。 我在做錯什么嗎?為什么它不起作用?

您只是在創建查詢,而不執行查詢,即在其上調用“列表”方法。

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM