读书人

08、分析JPA与持久化兑现产品对接的源

发布时间: 2012-10-23 12:12:22 作者: rapoo

08、分析JPA与持久化实现产品对接的源代码


????EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
????讲解下这个方法内部的一些原理(了解下就OK)

????打开源代码Persistence.java (用DJ Java Decompiler 3.7反编译的代码)


???

??? 打开,内容为 org.hibernate.ejb.HibernatePersistence

????程序会在类路径地下寻找到这个文件,并读取这个配置文件里面指定的可持久化驱动。
????Hibernate提供的可持久化驱动就是org.hibernate.ejb.HibernatePersistence这个类,这个类是Hibernate的入口类,类似JDBC里面的驱动类。
????当然,不同的可持久化产品的入口类是不同的。

????调用JPA应用,它能使用Hibernate,是因为有这样一个驱动类,它起到了一个桥梁的作用,过渡到Hibernate的产品上,这就是调用EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast"); 创建实体管理器方法的一些执行细节。

???? factory 是由Hibernate的可持久化驱动类创建出来的,如果观察Hibernate的实现类的话,会发现实际上EntityManagerFactory 是对SessionFactory这个类进行了一层封装。
????包括EntityManager类也是对Session对象进行了一层封装而已。
????只要研究下Hibernate的JPA实现代码就可以观察出来。

?

读书人网 >软件架构设计

热点推荐