JPA是关于数据持久化的;数据持久化是否仅限于RDBMS?如果不是,那么所有不同的持久性机制(如Excel、文件系统、XML、非RDMS等)是什么?我们可以用JPA规范来实现吗?
发布于 2011-10-02 21:32:56
JPA是为RDBMS设计的,通过查看API和元数据,您可以看到事实就是这样。可以将JPA应用于其他数据存储,但必须对某些概念进行近似,特别是在查询时。另一方面,JDO API是为所有数据存储设计的,这样的近似并不是必须的。
DataNucleus是第一个在一系列其他数据存储(Excel、ODBMS、ODF、LDAP、BigTable、HBase、MongoDB等)上提供JPA的实现,并且在过去的2+年中提供了这些。它还提供对相同数据存储的JDO访问。
发布于 2011-10-02 18:30:14
RDBMS都是关于数据持久化的;数据持久化是否仅限于
?
是。
JPA是一个提供对象/关系映射的框架。关系数据库是关系数据库管理系统中的"R“。
最近启动了一个项目(Hibernate OGM),允许Hibernate与NoSQL类型的数据库进行接口。该项目的目标是“使用JPA构造为NoSQL数据存储提供一个公共接口”。(这与为NoSQL实现JPA不同。)下面链接的文章将这个项目描述为“新生”;也就是说,最近才开始,不要屏息等待。
参考文献:
发布于 2011-10-03 22:45:17
JPA仅为关系数据定义标准映射。但许多JPA提供程序也支持非关系数据。通常支持的是API的运行时端,映射通常是通过非标准元数据完成的。
还有许多JDBC提供程序支持非关系数据和数据源的JDBC API和SQL,这可以与任何JPA提供程序一起使用。这通常是访问非关系数据的最佳解决方案。
映射到非关系数据没有标准,因为非关系数据包含广泛的数据格式,并且根据定义是非标准的。Java连接器体系结构(Java Connector Architecture,JCA)标准是Java访问非关系数据的标准。但是,大多数非关系适配器都提供JDBC驱动程序,而不是JCA驱动程序,因为JDBC的使用更为广泛。
请看,http://en.wikibooks.org/wiki/Java_Persistence/Databases#EIS.2C_and_Non-relational_Data_Sources
EclipseLink支持多种持久性服务,包括:
https://stackoverflow.com/questions/7625799
复制相似问题