- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
其中一列是 Oracle 数据库中的 XMLTYPE 类型。在我的应用程序中,我想保留数据并使用 Hibernate。
我做了以下在 hibernate 中映射 XMLTYPE
定义实现 UserType 的自定义用户类型
自定义用户类型实现基于博客链接 - http://community.jboss.org/wiki/MappingOracleXmlTypetoDocument
但我们没有使用 C3p0 连接池,而是使用 DBCP
我在自定义用户类型中创建 XMLType 时遇到问题
XMLType.createXML(st.getConnection(),HibernateXMLType.domToString((Document) value));
其中 st 是传递给方法的 preparedStatement。
st.getConnection() 返回的连接对象是 org.apache.commons.dbcp.PoolableConnection 类型
但是 createXML 方法只需要 oracle.jdbc.OracleConnection 类型的连接对象
我也尝试获取 getInnermostDelegate 但这也不起作用。
XMLTYPE 创建方法在包含的 jar xdb.jar 中 - 根据包含的版本会有任何变化吗?
谢谢
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
使用以下代码获取 SQLConnection 对象-
SimpleNativeJdbcExtractor extractor = new SimpleNativeJdbcExtractor();
PoolableConnection poolableConnection = (PoolableConnection) extractor
.getNativeConnection(st.getConnection());
Connection sqlConnection = poolableConnection.getInnermostDelegate();
现在,错误信息是java.sql.SQLException: Invalid column type
下面是过载的方法
public void nullSafeSet(PreparedStatement st, Object value, int index)
throws HibernateException, SQLException {
SimpleNativeJdbcExtractor extractor = new SimpleNativeJdbcExtractor();
PoolableConnection poolableConnection = (PoolableConnection) extractor
.getNativeConnection(st.getConnection());
Connection sqlConnection = poolableConnection.getInnermostDelegate();
try {
XMLType xmlType = null;
if (value != null) {
xmlType.createXML(sqlConnection, HibernateXMLType
.domToString((Document) value));
}
st.setObject(index, xmlType);
} catch (Exception e) {
e.printStackTrace();
throw new SQLException(
"Could not convert Document to String for storage");
}
}
现在毫 headless 绪...
最佳答案
我在使用 Java 中的 XMLType 时遇到了很多问题,我用一种非常简单的方法解决了这个问题。
我从 Oracle DB 端更改了输入数据类型,从 XMLtype 到 CLOB,然后我轻松地传递了 CLOB 并在存储过程的第一行;我从 CLOB 构建了一个 XMLType。
CLOB 在 java 中非常简单,只需将其用作 String (statement.setString(1, string);
)
关于java - 如何在 Hibernate 中使用 Oracle XMLTYPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3819135/
我是一名优秀的程序员,十分优秀!