如何使用JPA / Hibernate将自定义数据结构映射到bean实体?

时间:2020-01-18 13:07:16

标签: java hibernate jpa data-structures

我们有一个用Java(8+)实现的(可能很大)自定义数据结构。它具有用于查询数据的简单且最佳的API。逻辑结构与RDMS大致相似(具有关系,列,主键和外键),但是没有SQL驱动程序。

主要目标是通过ORM(将逻辑实体映射到JPA注释的Bean)访问数据。如果我们可以使用JPQL,那就太好了。首选Hibernate,但也欢迎其他选择。

最简单的方法是什么?这种实现的关键部分是什么?

(P。S.直接实现SessionImplementorEntityManagerImplementor等似乎太复杂了。)

2 个答案:

答案 0 :(得分:0)

您有两种可能。

为您的系统实现兼容JDBC的驱动程序,因此您可以“直接”使用JPA实现,例如Hibernate(尽管您可能需要为系统创建自定义方言)。

ObjectDB一样直接针对JPA规范进行编程,从而无需完全通过SQL和JPA实现。

后一种可能更容易,但是您仍然需要实现完整的JPA API。如果这是一个自定义的仅限内部使用的系统,则两者都没有任何意义。

答案 1 :(得分:0)

我刚才想到的一个想法是,我觉得可行:

  1. 使用现有的数据库实现(例如H2),并使用JPA集成。 H2已经有一个JPA集成库,因此应该很容易。

  2. 在此数据库中,创建Java存储过程或函数,然后通过JPA从当前应用程序中调用它。有关如何创建Java存储过程或函数的信息,请参见this H2 documentation。 (您可能还想研究“将函数用作表”部分。)

  3. 为服务方法定义协议,并将其封装在模型类中。该模型类的实例可以传递到函数/ SP,并检索响应。

注意事项:我本人从未做过此事,但我认为它会起作用。


编辑:这是代表思想的图表。尽管该图单独显示了H2,但它很可能与“您的Java / JEE应用程序”位于同一JVM中。但是,由于没有必要使用H2,因此我将其显示为单独的实体。

enter image description here