zoukankan      html  css  js  c++  java
  • JPA2.0和Spring的集成配置方式

      JPA2.0和Spring集成,persistence.xml文件可以需要,也可以不需要。

      需要persistence.xml的只需做如下简单的配置:

    <?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>

      Spring的配置如下:

    <!-- 数据源 -->
            <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> 
            

      这样应该是JPA2.0和Spring比较好的整合。

      如果不需要persistence.xml文件,就把它删掉。

      

  • 相关阅读:
    基于log4net的帮助类Log
    log4Net不能成功生成日志问题(关于配置错误)
    js 时间构造函数
    启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。
    XmlException: 名称不能以“<”字符(十六进制值 0x3C)开头
    poj 3040 Allowance
    1144 数星星 (树状数组)
    18121 排排坐看电影
    18124 N皇后问题
    18025 小明的密码
  • 原文地址:https://www.cnblogs.com/luxh/p/2763396.html
Copyright © 2011-2022 走看看