Java 在Hibernate中调用SQL过程
我在Java中有以下方法,它应该调用并执行SQL过程:Java 在Hibernate中调用SQL过程,java,sql-server,hibernate,stored-procedures,Java,Sql Server,Hibernate,Stored Procedures,我在Java中有以下方法,它应该调用并执行SQL过程: public void insertDocSubject(DocSubject docSubject) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); try { session.beginTransaction(); session.createSQLQue
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();
}
}
}
在运行它之后,不会发生任何事情,但过程也不会执行。我还试着手动运行这个过程,然后它正常工作了
我还尝试了我在谷歌上读到的一种方法,它建议使用以下函数
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());
但和第一种方法一样,它不起作用。是否有我做错了什么,或者为什么不起作用?您只是创建查询,而不是执行查询,即调用查询上的“list”方法