欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring3整合JPA2.0

程序员文章站 2022-07-15 19:26:36
...
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
            
            <persistence-unit name="APP" transaction-type="RESOURCE_LOCAL"/>
            
</persistence>

<!-- 数据源 -->
        <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
            <!-- 数据库驱动 -->
            <property name="driverClass" value="${jdbc.driverClassName}" />
            <!-- 相应驱动的jdbcUrl-->
            <property name="jdbcUrl" value="${jdbc.url}" />
            <!-- 数据库的用户名 -->
            <property name="username" value="${jdbc.username}" />
            <!-- 数据库的密码 -->
            <property name="password" value="${jdbc.password}" />
            <!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
            <property name="idleConnectionTestPeriod" value="${BoneCP.idleConnectionTestPeriod}" />
            <!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
            <property name="idleMaxAge" value="${BoneCP.idleMaxAge}" />
            <!-- 每个分区最大的连接数 -->
            <property name="maxConnectionsPerPartition" value="${BoneCP.maxConnectionsPerPartition}" />
            <!-- 每个分区最小的连接数 -->
            <property name="minConnectionsPerPartition" value="${BoneCP.minConnectionsPerPartition}" />
            <!-- 分区数 ,默认值2,最小1,推荐3-4,视应用而定 -->
            <property name="partitionCount" value="${BoneCP.partitionCount}" />
            <!-- 每次去拿数据库连接的时候一次性要拿几个,默认值:2 -->
            <property name="acquireIncrement" value="${BoneCP.acquireIncrement}" />
            <!-- 缓存prepared statements的大小,默认值:0 -->
            <property name="statementsCacheSize" value="${BoneCP.statementsCacheSize}" />
            <!-- 每个分区释放链接助理进程的数量,默认值:3,除非你的一个数据库连接的时间内做了很多工作,不然过多的助理进程会影响你的性能 -->
            <property name="releaseHelperThreads" value="${BoneCP.releaseHelperThreads}" />
       </bean>
       
       <!-- JPA实体管理器工厂 -->
       <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">  
                    <property name="dataSource" ref="dataSource"/>
                    <property name="persistenceProvider" ref="persistenceProvider"/>
                    <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>  
                  <property name="jpaDialect" ref="jpaDialect"/>  
                    
                    <property name="packagesToScan" value="cn.luxh.app.entity"/>
                    
                    <property name="jpaProperties">
                        <props>
                            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                            <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
                            <prop key="hibernate.max_fetch_depth">3</prop>
                            <prop key="hibernate.jdbc.fetch_size">18</prop>
                            <prop key="hibernate.jdbc.batch_size">10</prop>
                            <prop key="hibernate.hbm2ddl.auto">update</prop>
                            <prop key="hibernate.show_sql">true</prop>
                            <prop key="hibernate.format_sql">true</prop>
                            <prop key="javax.persistence.validation.mode">none</prop>
                        </props>
                    </property>
       </bean>
       <!-- 用于指定持久化实现厂商类 -->
       <bean id="persistenceProvider" class="org.hibernate.ejb.HibernatePersistence"/>
       <!-- 用于设置JPA实现厂商的特定属性 -->
       <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">  
           <property name="database" value="MYSQL"/>  
       </bean>  
       <!-- 用于指定一些高级特性 -->
       <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>  
       
       <!-- 事务管理器 -->  
       <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">  
           <property name="entityManagerFactory" ref="entityManagerFactory" />  
       </bean>


转自 http://www.cnblogs.com/luxh/archive/2012/11/09/2763396.html