JPA支持XML数据类型列

dee*_*vis 6 xml orm hibernate jpa

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

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

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

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

谢谢Steve

Pas*_*ent 2

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

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

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