我仍然是hibernate的初学者。我已经开始阅读用户指南,在其中找到了这个架构。
我知道hibernate是一个jpa实现,而jpa jar只包含interfaces.But我想了解为什么JPA API与Hibernate native api处于同一级别。 如果JPA只包含接口,那么我们如何调用例如entityManger.persist(entity)和normaly实体管理器是一个接口。 实体管理器实现在哪里???
答案 0 :(得分:3)
我知道hibernate是一个jpa实现,而jpa jar只包含interfaces.But我想了解为什么JPA API与Hibernate native api处于同一级别。
因为您可以使用JPA API(EntityManager,EntityManagerFactory等)或Hibernate本机API(Session,SessionFactory等)与ORM实体和数据库进行交互。
如果JPA只包含Interfaces,我们如何调用例如entityManger.persist(entity),而normaly实体管理器是一个接口。实体管理器实现在哪里???
像EntityManager,EntityManagerFactory等的JPA API由Hibernate实现(其中一个JPA实现,其他类似EclipseLink等确实存在)。您将在其中一个hibernate jar文件中找到该实现。
快速参考Hibernate implementation of EntityManagerFactory here on grepcode