相关疑难解决方法(0)

在hibernate中使用Oracle XMLType列

我需要将Oracle XMLType列映射到hibernate实体类.有一个工作(我认为众所周知)的解决方案涉及实施UserType; 但是,我无法使用它,因为需要导入Oracle xml解析器,这反过来会导致许多问题.
我可以将xml列的值作为字符串访问并将转换保留给操作实体的代码,但是我找不到从中读取值并将其写入数据库的方法.到目前为止我尝试了什么:

  1. 将实体类中的属性声明为String.结果 - 值读为null.如果属性是公正的Serializable,我会得到"无法反序列化"的异常.
  2. 使用@Formula注释(CAST xmlCol as varchar2(1000)).结果 - 不存储值
  3. 使用@Loader并把CASTSELECT.这是最有希望的尝试 - 读取并成功存储了值,但是当加载包含xml列的实体的集合时,我得到null(@Loader如果基础表被LEFT JOIN编辑,Hibernate不使用sql ).

我认为应该工作的另一种方法是将xml列作为String(用于写入)加上用于读取的虚拟字段@Formula; 然而,它看起来像是一个肮脏的黑客,我宁愿不这样做,除非我别无选择.

最后,我能做的最后一件事就是更改DB Schema(更多的是1选项,比如view + triggers,列数据类型更改),但这对我来说也不是一个好选择.

我想知道我是否遗漏了某些东西或者是否有办法让(3)工作?

xml oracle hibernate

28
推荐指数
4
解决办法
2万
查看次数

标签 统计

hibernate ×1

oracle ×1

xml ×1