整合Spring和JPA第二种方式
获取EntityManagerFactory的方法是使用springframe的LocalContainerEntityManagerFactoryBean
。
将前面获取EntityManagerFactory的class引用改一下:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
</bean>
我们只需要配置persistenceXmlLocation这个属性,指定到classpath里面的META-INF/persistence.xml。
这种方式是配置JPA的强大的方法。因为它允许在应用程序中灵活进行本地配置。它支持连接现有JDBC数据源,支持本地事务(RESOURCE_LOCAL)和全局事务(JTA)。
另外,还可以与dataSource一起使用,我们的persistence.xml里面不用写连接的属性了,直接就写名字和对应的实体就可以了,例如:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>myentiry.UserInfo</class>
</persistence-unit>
</persistence>
spring的applicationContext配置文件:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://192.168.2.44:1433;databaseName=test" />
<property name="username" value="sa" />
<property name="password" value="sa" />
<property name="initialSize" value="5" />
<property name="minIdle" value="5" />
<property name="maxIdle" value="30" />
<property name="maxActive" value="100" />
<property name="maxWait" value="1000" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
<property name="persistenceUnitName" value="MyPU" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="false" />
<property name="generateDdl" value="false" />
</bean>
</property>
</bean>
第三者方式是用jee:jndi-lookup从JNDI中获取EntityManagerFactory
<bean>
<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence/myPersistenceUnit"/>
</bean>
在业务逻辑层里面我们得使用@Transactional注释标识,不然方法不会提交事务。
有关spring事务传播和事务隔离请看:
hi.baidu.com/coolcat%5Fpolice/blog/item/59ebc12324be8d4b935807d4.html
分享到:
相关推荐
该案例使用SpringBoot 整合了SPringData JPA,使用SpringData 开发简化了Dao层的开发量,简化了数据访问,使得持久化更加简单 !
第四章节 Spring Boot 整合 Spring Data JPA(SpringBoot 高级)一、Spring Data JPA 介绍Spring Dat
NULL 博文链接:https://pihai.iteye.com/blog/403437
Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA
NULL 博文链接:https://mixo44.iteye.com/blog/1797079
使用Maven 整合的Spring MVC JPA 框架
技术架构:SpringMVC3+Spring3.1.2+... 内涵sql和各种Spring Data JPA测试和案例,导入&创建DB,配置好maven便可运行 maven构建项目&问题:http://zhc3191012.blog.163.com/blog/static/18555337620140891133454/
idea下整合springboot+spring data jpa
一个项目包含了常用查询场景,包含单表查询部分字段,联合查询映射自定义对象,动态sql。一个项目零基础到开发,只需要三小时学习。
Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA+JdbcTemplate一个简单的DEMO
spring整合jpa简单实例,本人亲测正式有效,导入成功即可运行。
2017 spring data jpa+spring4.2+springmvc+hibernate4.3 maven环境intellij idea增删改查实例
spring springmvc hibernate 整合 使用了maven管理jar 持久层 用了 spring data jpa
spring4.1.0已经正式发布了,整合一下使用spring mvc和springData和jpa的使用。 内含有详细的注释解释和完整的JAR包资源,导入工程即可使用,方便学习。
新的持久化api,低耦合,方便,快速。项目为Intellij idea项目。
本项目整合spring_jpa_hibernate_shiro,spring_jpa_hibernate_shiro.zip 里有代码,spring_jpa_hibernate常用的小弟就没有单独说明了,在项目配置文件里写得比较清楚,小弟在主要是shiro权限控制做了单独说明,如有...
这里主要是整合后的空白框架
这是整合SpringMVC+Spring+SpringDataJPA+Hibernate简单的实现登录的功能,用的是mysql数据库,这是一个web Project 如果你用的是JavaEE6那么你要注意bean-validator.jar和weld-osgi-bundle.jar与slf4j的jar包冲突。...
NULL 博文链接:https://panshaobinsb.iteye.com/blog/1683979
Spring+Spring MVC+SpringData JPA整合完成增删改查,翻页实例.zip