1

我有一个简单的问题。是否有能力从存储过程中的休眠会话中获取数据?看起来像:

@Transactional
public void doAction() {
    Product pr = new Product("Apple");
    hibernateTemplate.save(product);
    executeStoredProcedure();
    hibernateTemplate.save(new Product("foobar"));
}

executeStoredProcedure - 方法通过 JDBC 执行存储过程。此存储过程必须有权访问已创建的产品 (Apple)。

此外,使用 db 的所有操作都应在一个事务中执行。

我怎样才能实现类似的东西?

使用 Oracle DB (PLSQL)

4

1 回答 1

1

Try calling flush() before invoking the stored procedure in order to have the new product synced to the database.

Quote from the javadoc of flush():

Only invoke this for selective eager flushing, for example when JDBC code needs to see certain changes within the same transaction.

...which is exactly what you need, I think.

于 2013-04-16T09:07:16.953 回答