How To Call Stored Procedure In Hibernate
2014-06-03 14:45
316 查看
How To Call Stored Procedure In Hibernate
In this tutorial, you will learn how to call a store procedure in Hibernate.MySQL store procedure
Here’s a MySQL store procedure, which accept a stock code parameter and return the related stock data.DELIMITER $$ CREATE PROCEDURE `GetStocks`(int_stockcode VARCHAR(20)) BEGIN SELECT * FROM stock WHERE stock_code = int_stockcode; END $$ DELIMITER ;
In MySQL, you can simple call it with a call keyword :
CALL GetStocks('7277');
Hibernate call store procedure
In Hibernate, there are three approaches to call a database store procedure.1. Native SQL – createSQLQuery
You can use createSQLQuery() to call a store procedure directly.Query query = session.createSQLQuery( "CALL GetStocks(:stockCode)") .addEntity(Stock.class) .setParameter("stockCode", "7277"); List result = query.list(); for(int i=0; i<result.size(); i++){ Stock stock = (Stock)result.get(i); System.out.println(stock.getStockCode()); }
2. NamedNativeQuery in annotation
Declare your store procedure inside the @NamedNativeQueries annotation.//Stock.java ... @NamedNativeQueries({ @NamedNativeQuery( name = "callStockStoreProcedure", query = "CALL GetStocks(:stockCode)", resultClass = Stock.class ) }) @Entity @Table(name = "stock") public class Stock implements java.io.Serializable { ...
Call it with getNamedQuery().
Query query = session.getNamedQuery("callStockStoreProcedure") .setParameter("stockCode", "7277"); List result = query.list(); for(int i=0; i<result.size(); i++){ Stock stock = (Stock)result.get(i); System.out.println(stock.getStockCode()); }
3. sql-query in XML mapping file
Declare your store procedure inside the “sql-query” tag.<!-- Stock.hbm.xml --> ... <hibernate-mapping> <class name="com.mkyong.common.Stock" table="stock" ...> <id name="stockId" type="java.lang.Integer"> <column name="STOCK_ID" /> <generator class="identity" /> </id> <property name="stockCode" type="string"> <column name="STOCK_CODE" length="10" not-null="true" unique="true" /> </property> ... </class> <sql-query name="callStockStoreProcedure"> <return alias="stock" class="com.mkyong.common.Stock"/> <![CDATA[CALL GetStocks(:stockCode)]]> </sql-query> </hibernate-mapping>
Call it with getNamedQuery().
Query query = session.getNamedQuery("callStockStoreProcedure") .setParameter("stockCode", "7277"); List result = query.list(); for(int i=0; i<result.size(); i++){ Stock stock = (Stock)result.get(i); System.out.println(stock.getStockCode()); }
相关文章推荐
- How to call stored procedure in Hibernate
- How to call stored procedure in Hibernate
- How to detect a rollback in MySQL stored procedure?
- How to debug stored procedure/function in TOAD
- How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause
- illustrates how to call a SQL Server stored procedure
- How to use Oracle 11g ODP.NET UDT in an Oracle Stored Procedure's Where clause
- [原] XAF How to bind a stored procedure to a ListView in XAF
- How To Use a DataReader Against an Oracle Stored Procedure in Visual C# .NET
- EF 接收OUTPUT参数的方法 How to Retrieve Stored Procedure Output Parameters in Entity Framework
- How to call an Oracle Stored Procedure that returns one or more REF CURSORS, using ADO from C++ How
- how to call the procedure in c# program
- How to call Oracle function or stored procedure using spring persistence framework?
- navicate how to create a stored procedure
- 【转】How to call c++ exported method and classes in c#
- How to call SQL SP in WCF ria services.
- How to Enable or Disable Hibernate in Windows 7
- how to debug store procedure in sql server 2005
- How to Debug your Stored Procedure?
- how to call Web service in Excel 2003 / Excel 2005