java - 如何在hibernate 3中执行存储过程

标签 java hibernate stored-procedures

我是 hibernate 新手。我在我的应用程序中使用 hibernate 3 使用 hibernate 注释,我正在 struts 1.3 中开发应用程序。

我的问题是: 我已经用谷歌搜索了很多,但无法理解如何使用注释在 hibernate 中调用存储过程,我有一个简单的场景:假设我的 jsp 中有 2 个字段说 1) 代码 2) 名称,我已经在数据库中创建了一个存储过程,用于将这些记录插入表中。现在我的问题是如何执行它

 List<MyBean> list = sessionFactory.getCurrentSession()
                          .getNamedQuery("mySp")
                        .setParameter("code", code)
                        .setParameter("name", name)

我不知道如何执行此操作的确切代码。但我想类似的事情实际上我来自 jdbc 背景,因此不知道如何执行此操作,以及在使用存储过程从数据库中选择数据时我想要的相同操作。

最佳答案

Hibernate 提供了许多简单的方法来调用 SP,例如

  1. 原生 SQL
  2. native SQL 中的命名查询作为注释/XML 映射文件

以下链接显示了如何实现上述各项

http://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html#sp_query

使用 hibernate 运行 native SQL 查询的示例:

 Session session = getSession();
    SQLQuery sqlQuery = session.createSQLQuery("SELECT COUNT(id) FROM tableName WHERE external_id = :external_id");
    sqlQuery.setParameter("external_id", idValue);
    int count = ((BigInteger) sqlQuery.uniqueResult()).intValue();
    releaseSession(session);

关于java - 如何在hibernate 3中执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11395123/

相关文章:

java - server.port 和 server.context-path 在部署到 tomcat 时不生效

java - 如何以编程方式检查 JFormattedTextField 允许输入的内容?

java - Matrix Toolkits Java 和 Netlib-Java 的文档在哪里?

sql - 结构化存储过程的最佳实践

java - 将 fragment 添加到 Activity 中

Eclipse/Maven/SonarQube : Invalid value of sonar. 库

java - 使用 ORM 时如何松耦合 DB 交互

hibernate 中的 Java 枚举

sql-server - "[RODBC] ERROR: Could not SQLExecDirect"因为在过程中插入语句

c# - 将参数传递给c#中的sql存储过程