我们有一个用Java(8+)实现的(可能很大)自定义数据结构。它具有用于查询数据的简单且最佳的API。逻辑结构与RDMS大致相似(具有关系,列,主键和外键),但是没有SQL驱动程序。
主要目标是通过ORM(将逻辑实体映射到JPA注释的Bean)访问数据。如果我们可以使用JPQL,那就太好了。首选Hibernate,但也欢迎其他选择。
最简单的方法是什么?这种实现的关键部分是什么?
(P。S.直接实现SessionImplementor
,EntityManagerImplementor
等似乎太复杂了。)
答案 0 :(得分:0)
您有两种可能。
为您的系统实现兼容JDBC的驱动程序,因此您可以“直接”使用JPA实现,例如Hibernate(尽管您可能需要为系统创建自定义方言)。
像ObjectDB一样直接针对JPA规范进行编程,从而无需完全通过SQL和JPA实现。
后一种可能更容易,但是您仍然需要实现完整的JPA API。如果这是一个自定义的仅限内部使用的系统,则两者都没有任何意义。
答案 1 :(得分:0)
我刚才想到的一个想法是,我觉得可行:
使用现有的数据库实现(例如H2),并使用JPA集成。 H2已经有一个JPA集成库,因此应该很容易。
在此数据库中,创建Java存储过程或函数,然后通过JPA从当前应用程序中调用它。有关如何创建Java存储过程或函数的信息,请参见this H2 documentation。 (您可能还想研究“将函数用作表”部分。)
为服务方法定义协议,并将其封装在模型类中。该模型类的实例可以传递到函数/ SP,并检索响应。
注意事项:我本人从未做过此事,但我认为它会起作用。
编辑:这是代表思想的图表。尽管该图单独显示了H2,但它很可能与“您的Java / JEE应用程序”位于同一JVM中。但是,由于没有必要使用H2,因此我将其显示为单独的实体。