【问题标题】:Calling Stored procedure in hibernate在休眠中调用存储过程
【发布时间】:2019-02-20 10:27:15
【问题描述】:

下面列出了在休眠中调用存储过程的一种方法,但我在现实生活环境中的过程在内部调用 DB 链接,因此显然不会有与该过程关联的类。

我想说的是

addEntity(Stock.class):这里StockcreateSQLQuery() 将映射其输出的类,但在我的情况下,将没有类,因为我的过程正在访问DB Link(其他数据库表)。

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());
}

我的问题

  1. 如何在没有(实体)类的情况下调用该过程?

  2. 我的过程是从其他数据库中选择 10 列通过 DB链接并返回我在列表中的数据 程序的执行。我如何实现上述场景 休眠?

【问题讨论】:

  • 我怎么称呼..我想你可以用SimpleJdbcCall这个。

标签: java spring oracle hibernate spring-mvc


【解决方案1】:

你可以使用SimpleJdbcCall这样的

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate);

simpleJdbcCall.withProcedureName("GetStocks");
simpleJdbcCall.declareParameters(new SqlParameter("stockCode",
            OracleTypes.VARCHAR));

MapSqlParameterSource map = new MapSqlParameterSource();
map = new MapSqlParameterSource();
map.addValue("stockCode", "7277");

Map<String, Object> result = simpleJdbcCall.execute(map);

【讨论】:

  • 我实际上正在将我的项目从 jdbc 转换为 hibernate 我想利用 hibernate ....顺便说一句谢谢
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多