【问题标题】:JPA support for XML datatype columnsJPA 对 XML 数据类型列的支持
【发布时间】:2010-09-03 15:44:00
【问题描述】:

对于我们正在开始的一个新项目(在 Hibernate 3 之上使用 JPA 2),我们需要能够存储 XML 文档,然后在以后查询它们的内容和结构。我们希望支持的数据库是 DB2、Oracle 和 SQLServer。

我知道所有三个 DB 供应商都支持原生 XML 查询(使用类似 SQL 和 XQuery 的语句),但是 Hibernate 中是否对此有任何直接支持?换句话说,我可以编写一组休眠数据访问代码,使用 Hibernate/JPA 的内置功能不可知地查询所有 3 种数据库类型,还是需要为每种数据库类型编写特定查询?

我很感激我可以将该列定义为 @Lob 列,然后读取所有记录、解析和检查,但我希望利用数据库引擎的强大功能,而不必自己动手。

作为参考,我们一次只能使用一种 DB 风格,只是我们希望能够在需要时支持所有 3 种风格。

谢谢史蒂夫

【问题讨论】:

    标签: xml hibernate orm jpa


    【解决方案1】:

    JPA 不为Lob 之外的这些专有类型提供特定支持。对于更高级的支持,我猜你必须实现一些 Hibernate 自定义用户类型。以下文档可能会给您一些想法。

    当然,它们将是特定于数据库的,并且会降低代码的可移植性。

    关于查询,AFAIK 任何在 HQL 语句的 WHERE 子句中调用且 Hibernate 不知道的函数都会按原样传递给数据库。所以你可以利用特定的功能。但同样,这将使查询数据库特定。或许可以考虑为特定部署使用orm.xml 映射。

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2014-10-18
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多