gpt4 book ai didi

oracle - 使用 Hibernate 4.1 执行 native 查询

转载 作者:行者123 更新时间:2023-12-04 18:16:43 25 4
gpt4 key购买 nike

我正在使用带有 C3P0 连接池的 Hibernate。在 Hibernate 3 中,我可以通过 BorrowedConnectionProxy 访问包装的 C3P0ProxyConnection然后执行rawConnectionOperation .据我所见BorrowedConnectionProxy不再是 Hibernate 4.1 的一部分。

有什么方法可以运行供应商特定的查询吗? (Work.execute 中的代理连接实例对我不起作用,我需要执行 Oracle 存储过程来收集自定义对象类型)。

谢谢你 。

最佳答案

您可以通过调用以下方式访问未代理的工作连接:

public void execute(Connection connection) throws SQLException {
Connection unproxiedConnection = connection.unwrap( Connection.class );
...
}

这种形式利用了 JDBC 4 的 unwrap 方法,我们只是将它委托(delegate)给底层连接。或者,如果您特别需要 OracleConnection:
public void execute(Connection connection) throws SQLException {
OracleConnection oracleConnection = connection.unwrap( OracleConnection.class );
...
}

您还可以使用:
public void execute(Connection connection) throws SQLException {
Connection unproxiedConnection = ( (JdbcWrapper<Connection>) connection ).getWrappedObject();
...
}

在考虑允许作品表示它想要一个未经代理的连接方面,我来回考虑,但鉴于 Connection#unwrap 的可用性,我不太确定是否有真正的好处。

关于oracle - 使用 Hibernate 4.1 执行 native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com