我需要从任何格式的传入消息中提取数据。要存储的提取数据也取决于格式,即格式 A 可以提取字段 X、Y、Z,但格式 B 可以提取字段 A、B、C。我还需要通过在消息。
现在我正在配置和存储提取策略 (XSLT) 并在遇到相关格式时在运行时执行它,但我将提取的数据作为 XmlType
列。 Oracle 似乎对 XmlType
的开发/支持相当松散,因为它需要一个旧的 jar,迫使您使用相当旧的 DOM DocumentBuilderFactory
impl(看起来像 Java 1.4 代码),它与 Spring 3 冲突,并且不能很好地与 Hibernate 一起玩。 XML 查询也很慢且不直观。
我的结论是使用 XmlType
的 Oracle 不是存储提取数据的好方法,所以我的问题是,存储序列化/可查询数据的最佳方法是什么?
- NoSQL(Cassandra、CouchDB、MongoDB 等)?
- 像 JackRabbit 这样的 JCR ?
- 手动反/序列化的 blob?
- 另一个 Oracle 解决方案?
- 还有别的事吗??
最佳答案
您未列出的一个替代方法是使用 XML Database . (请注意,Oracle 是大约十种 XML 数据库产品之一。)
(显然,blob 类型不允许在持久的 XML 对象“内部”查询,除非您将每个 blob 实例读入内存并在那里进行查询;例如使用 XSLT。)
关于java - 用什么来存储可以查询的序列化数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190245/