AnnotationSessionFactoryBean是工廠bean由Spring實現創建Hibernate的Session工廠和共享Spring的應用程序上下文。如果您打算使用Direct Hibernate(如果您不需要persistent.xml/per-cont.xml/entityManager),則可以在AnnotationSession FactoryBean中提供屬性。並可以注入任何DAO。
如果你打算通過JPA連線,然後你需要(持久性和持久性上下文和實體管理器)。爲了做到這一點,你需要三個步驟
1.申報/配置Spring的JPA適配器創建EntityManager實例爲您
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
內JPA bean聲明提供詳細信息有關數據庫和誰ORM提供程序,如(休眠/ toplink/....)在您的情況休眠
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="false" />
<property name="databasePlatform" value="org.hibernate.dialect.Oracle9Dialect"/>
</bean>
</property>
然後提供有關您的持久實體deta在persistent.xml或某種方式ILS
<property name="persistenceXmlLocation" value="classpath:persistence.xml" />
,如果您有任何具體的JPA屬性然後
<property name="jpaProperties">
<props>
<!-- <prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
-->
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.use_sql_comments">false</prop>
</props>
</property>
底線,春provies適配器直接到Hibernate(在如果您不需要Jpa文件(如persistent.xml等),但您需要hibernate相關文件(如hbm文件)或適配器到JPA(在這種情況下,您提供了有關誰是JPA供應商的詳細信息)支撐彈簧如何連接到JPA供應商)。
希望以上澄清。
感謝您的回答:-),使用Direct Hibernate意味着什麼。在我看來,首先必須使用JPA並選擇一個提供者。在實體中映射註釋不是Hibernate註釋。對不起,但我仍然有點困惑... – javaxiss
我們可以通過使用hbm或hibernate註釋來實現帶有hibernatr的orm,沒有jpa.jpa的sessionfactory是orm的通用規範,並且它提供的接口不是實現。如果你實現使用休眠,你不能輕鬆地切換到其他的ORM工具,如toplink,ibatis和do ..但是如果您使用jpa和jpa註釋來實現,那麼您的應用將會非常友好地耦合。所以它不能輕鬆地切換任何orm而不改變代碼(在春天,你只需要改變confuguration來提供執行) – Mani
在netshell中它就像usibg jpa類似於使用接口和usibg hibernate類似於綁定到Concerte類。 。 – Mani