使用Spring框架写JPA程序
来源:互联网 发布:淘宝无线地址转换器 编辑:程序博客网 时间:2024/06/08 11:12
1.不建议使用Spring的Support类。
虽然Spring提供JpaTemplate类和JpaDaoSupport类,还是建议使用DI的方式注入EntityManager。例子如下:
@PersistenceContext
private EntityManager em;
另外需要在XML里面注册2个bean。
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
</bean>
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor">
</bean>
摘录JavaDoc里的相关描述:
NOTE: JpaTemplate mainly exists as a sibling of JdoTemplate and HibernateTemplate, offering the same style for people used to it. For newly started projects, consider adopting the standard JPA style of coding data access objects instead, based on a "shared EntityManager" reference injected via a Spring bean definition or the JPA PersistenceContext annotation. (Using Spring's SharedEntityManagerBean / PersistenceAnnotationBeanPostProcessor, or using a direct JNDI lookup for an EntityManager on a Java EE 5 server.)
2.EntityManagerFactory相关的XML定义
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/SpringStudy">
</property>
<property name="username" value="root"></property>
<property name="password" value="pwd"></property>
</bean>
<bean id="emf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="jpaVendorAdapter" ref="jpaVendorAdapter"></property>
</bean>
<bean id="jpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL"></property>
<property name="showSql" value="true"></property>
<property name="generateDdl" value="false"></property>
<property name="databasePlatform"
value="org.hibernate.dialect.MySQL5Dialect">
</property>
</bean>
3.JpaTransactionManager相关的XML定义,其中会引用到上面定义的EntityManagerFactory。
<bean id="jpaDialect"
class="org.springframework.orm.jpa.vendor.HibernateJpaDialect">
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf"></property>
<property name="jpaDialect" ref="jpaDialect"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
通过上面的定义在BeanClass里面通过@Transactional注解就可以引入事物管理功能。
4.基于注解的autowire
<context:annotation-config></context:annotation-config>
通过上面的定义就可以实现@Autowired注解标记对象的自动注入。@Autowired是ByType注入。如果需要ByName注入可以使用@Resource注解。使用上面的定义方式被注入的bean还是需要通过XML的方式注册的。如果连bean的注册都希望通过注解的方式完成的话,使用下面的定义方式来替代。
<context:component-scan base-package="xxx.package.name"></context:component-scan>
相关package下
摘录JavaDoc里的相关描述:
NOTE: JpaTemplate mainly exists as a sibling of JdoTemplate and HibernateTemplate, offering the same style for people used to it. For newly started projects, consider adopting the standard JPA style of coding data access objects instead, based on a "shared EntityManager" reference injected via a Spring bean definition or the JPA PersistenceContext annotation. (Using Spring's SharedEntityManagerBean / PersistenceAnnotationBea
2.EntityManagerFactory相关的XML定义
3.JpaTransactionManager相关的XML定义,其中会引用到上面定义的EntityManagerFactory。
4.基于注解的autowire
被@Component
,@Service
, @Controller,
@Repository之中的任何一个注解标记的Class都会被自动注册成Bean。
0 0
- 使用Spring框架写JPA程序
- eclipse 使用maven 搭建spring + springMVC + spring Data + jpa 框架
- Spring整合Jpa框架
- Spring Data JPA框架
- SpringMVC+Spring+Hibernate+JPA框架使用一·两事儿
- spring data jpa写update
- Spring Data JPA 使用
- spring-data-jpa 使用
- spring data jpa使用
- spring-data-jpa 使用
- Spring 使用JPA
- spring JPA使用
- Spring Data JPA使用
- spring-data-jpa 使用
- Spring实战 使用JPA
- JPA,spring data jpa和其他jpa框架的关系
- jpa框架与spring框架的整合
- 使用 Spring Data JPA 简化 JPA 开发
- win7 32位下安装visual studio 2005 sp1卡住在正在提取界面以及安装SQl server 2005 express失败
- Hibernate学习篇06——onetomany简单实例
- 基于高层表示的action recognition
- 梯度下降
- JAVA并发学习之基础概念
- 使用Spring框架写JPA程序
- jquery.inArray()和splice()使用小记
- Android simpleadapter对象参数解释
- Java 垃圾回收机制
- 爬取糗事百科段子
- struts2工作原理
- 2.单片机和嵌入式的区别:
- *查找输入整数二进制中1的个数
- js获取页面传来参数的方法