Java 在Spring应用程序中配置JPA
我使用Hibernate实现将Spring配置为使用JPA。然而,我并不完全理解这个过程。我通过关注不同的博客等方式让它工作起来。我使用了EJB3.1,在那里我有一个persistence.xml。然而,在spring中,我声明了一个LocalContainer…Bean,并为它提供了一些属性,我没有persistence.xml。有人能解释一下它在春天是如何工作的吗?声明的bean是什么Java 在Spring应用程序中配置JPA,java,spring,jakarta-ee,jpa,Java,Spring,Jakarta Ee,Jpa,我使用Hibernate实现将Spring配置为使用JPA。然而,我并不完全理解这个过程。我通过关注不同的博客等方式让它工作起来。我使用了EJB3.1,在那里我有一个persistence.xml。然而,在spring中,我声明了一个LocalContainer…Bean,并为它提供了一些属性,我没有persistence.xml。有人能解释一下它在春天是如何工作的吗?声明的bean是什么 <bean id="emf" class="org.springframework.orm.jpa.
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="packagesToScan" value="com.company.domain" />
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.PostgreSQL82Dialect
</prop>
</props>
</property>
</bean>
org.hibernate.dialogue.postgresql82dialogue
使用JPA的Spring配置有不同的风格,一种需要persistence.xml,另一种只需要bean声明(无persistence.xml)
我将在您的场景中讨论案例2:
我们需要persistence.xml的主要原因是:
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="packagesToScan" value="com.company.domain" />
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.PostgreSQL82Dialect
</prop>
</props>
</property>
</bean>
org.hibernate.dialogue.postgresql82dialogue
第一个属性,dataSource已经包含数据库设置
第二个属性,jpaVendorAdapter是特定于Spring的属性
第三个属性,packagesToScan这是Spring的一个属性,用于扫描实体,我们可以在persistence.xml中使用“class”标记,通过提及每个类FQN来执行此操作
第四个属性,顾名思义,JPAPProperties可以在Spring中,也可以在persistence.xml中
e、 g
因为Springbean中已经有了所有配置,所以不需要persistence.xml
只需添加一个脚注:
Spring3.1提供了另一种选择:LocalContainerEntityManagerFactoryBean,它接受“packagesToScan”属性,指定要扫描@Entity类的基本包
希望这能回答您的疑问。如果您想了解更多信息,您应该分享spring的配置。@HimanshuBhardwaj完成
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL82Dialect" />