我有一个 Eclipse RCP 应用程序,其中一个 EMF 模型实例填充在内存中。存储该模型以供外部系统访问的最佳方式是什么?访问可能发生在运行期间和之后。
模型的读取和写入非常平衡,每秒可以发生多次。
我认为使用 Hibernate + Teneo + EMF 填充的数据库会很好地工作,但我想知道还有哪些其他选项。
我有一个 Eclipse RCP 应用程序,其中一个 EMF 模型实例填充在内存中。存储该模型以供外部系统访问的最佳方式是什么?访问可能发生在运行期间和之后。
模型的读取和写入非常平衡,每秒可以发生多次。
我认为使用 Hibernate + Teneo + EMF 填充的数据库会很好地工作,但我想知道还有哪些其他选项。
我将 CDO(连接数据对象)与 EMF 结合使用来做类似的事情。如果您使用 Eclipse wiki 中的示例,那么运行它不需要太长时间。几个警告:
对于经常更改的数据,您可能希望使用 nonAudit 模式来保持持久性。否则,您将在每次提交时保存 EObject 的新版本,同时保留旧版本。
您可以选择在每次数据更改时提交,也可以选择以较低频率提交,具体取决于您需要发布更新的频率。
如果您选择这样做,您也有相当灵活的锁定选项。
我的应用程序使用 Derby 来实现持久性,尽管它很快就会迁移到 SQL Server。
Eclipse Live ( http://live.eclipse.org/node/635 )上有一个 1 小时的网络研讨会,介绍了 CDO 并提供了一些很好的使用示例。
除非性能是一个真正的问题(除非你的模型很大,否则不会有问题),我会和 Teneo 一起做繁重的工作。即使速度很慢,您也可以使用 JPA 注释对其进行调整。