`

JPA集成不同ORM的配置

    博客分类:
  • JPA
阅读更多

以前使用JPA的实现是toplink,现在改为hibernate,所以要修改persistence.xml文件,两者的配置有一些不一样,并且在EE环境下面和SE的环境下面也有不一样,还有一点,那就是当persistence.xml里面有些格式出错的时候,虽然出错的不是我们需要的那个单元,但也会使得整个persistence.xml报废。

下面帖的是在SE的环境下面使用toplink和hibernate的实现,两者都写在同一个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="TestSSH2PU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>com.hadeslee.jpaentity.Department</class>
    <class>com.hadeslee.jpaentity.Person</class>
    <properties>
      <property name="toplink.jdbc.user" value="sa"/>
      <property name="toplink.jdbc.password" value="hadeslee"/>
      <property name="toplink.jdbc.url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testSSH"/>
      <property name="toplink.jdbc.driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
      <property name="toplink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
  <persistence-unit name="TestSSH1PU2" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.hadeslee.jpaentity.Department</class>
    <class>com.hadeslee.jpaentity.Person</class>
   <properties>
        <property name="hibernate.connection.driver_class" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
        <property name="hibernate.connection.url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testSSH"></property>
        <property name="hibernate.connection.username" value="sa"></property>
        <property name="hibernate.connection.password" value="hadeslee"></property>
        <property name="hibernate.show_sql" value="true"></property>
        <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"></property>
        <property name="hibernate.current_session_context_class" value="thread"></property>
    </properties>
  </persistence-unit>
</persistence>

 

在SE的环境下面,是不能使用容器的JTA的数据源的。并且不能使用
<exclude-unlisted-classes>true</exclude-unlisted-classes>这个属性。
本文重点是记录下两个常用的JPA的实现的配置。目前是在SE环境下的配置。EE环境下面的配置如下:

 

<?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="unit_mssql" transaction-type="JTA">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <jta-data-source>MobileOAMSSQL</jta-data-source>
    <properties>
      <property name="toplink.ddl-generation" value="create-tables"/>
      <property name="toplink.logging.level" value="FINE"/>
    </properties>
  </persistence-unit>
 
<persistence-unit name="MyApp-ejbPU2" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>MobileOAMYSQL</jta-data-source>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.show_sql" value="true"/>
    </properties>
  </persistence-unit>
</persistence>

 

在EE环境下面使用JPA配置就简单了许多,首先他可以把当前模块的CLASS文件都包括进来,不用手工指定。并且也少了很多有关于数据库连接的操作,因为这个时候都是从容器里面去取数据源的。并且此时的事务是由容器去管理的,也就是使用JTA,不再是RESOURCE_LOCAL了。这样在代码里面就不用em.getTransaction().begin();和em.getTransaction().commit()了,并且可以使用注入功能,把EntityManager注入到使用它的地方了。

分享到:
评论

相关推荐

    基于 SpringBoot 2.3.4 版本的入门 Demo 教程

    Spring Boot JPA - 全自动 ORM Spring Boot JPA 二级缓存(ehcache) Spring Boot Hikari 连接池详解 Spring Boot Caffeine 本地缓存 Spring Boot Redis 缓存 Spring Boot Redis 分布式锁 Spring Boot Event 事件...

    支持多数据库的ORM框架ef-orm.zip

    (但整个ORM不是完整的JPA兼容实现)更高的性能 依赖于ASM等静态字节码技术而不是CGlib,使得改善了代理性能;依赖于动态反射框架,内部数据处理上的开销几乎可以忽略。操作性能接近JDBC水平。对比某H开头的框架,...

    跟我学spring3(8-13).pdf

    对ORM的支持 之 8.1 概述 8.2 集成Hibernate3 8.3 集成iBATIS 8.4 集成JPA 9.1 数据库事务概述 9.2 事务管理器 9.3 编程式事务 9.4 声明式事务 10.1 概述 10.2 集成Struts1.x 10.3 集成Struts2.x 10.4 集成JSF 11.1 ...

    跟我学spring3(8-13)

    【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3 【第九章】 Spring的事务 之 9.1 数据库事务概述 ——跟我学spring3 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3 【第九章】 Spring的...

    spring-data-ebean:用于Spring数据的Ebean实现,简化了创建基于Ebean的数据访问层的开发。超简单,超强大的ORM框架,OQL,SQL,ES多查询引擎,超越JPA,Hibernate,Mybatis

    JPA实体的CRUD方法的Ebean实现 根据查询方法名称和注释动态生成查询 支持查询渠道服务 通过查询方法透明触发Ebean查询 提供基本属性的实现域基类 支持透明审核(创建,最后更改) 集成自定义存储库代码的可能性 ...

    hibernate-orm:Hibernate的核心ObjectRelational映射功能

    它还提供了JPA规范的实现,该规范是ORM的标准Java规范。 这是其源代码的存储库:有关更多信息,请参见 。从源头建造该构建需要Java 8 JDK作为JAVA_HOME。 您将需要来获取。 Hibernate使用作为其构建工具。 如果您不...

    SpringBoot项目网上点餐系统.zip

    技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...

    SpringBoot项目校园外卖服务系统设计与实现.zip

    技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...

    免费计算机毕业设计-在线音乐播放平台实现(包含代码+论文)

    该平台采用SpringBoot作为核心框架,整合了Spring MVC进行前端请求处理,使用Spring Data JPA或MyBatis等ORM工具与数据库交互,实现音乐数据的管理和查询。平台功能涵盖了音乐库管理、用户账户管理、在线播放、歌曲...

    SpringBoot项目小徐影城管理系统.zip

    技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...

    基于spring boot搭建的web基础框架.zip

    集成调试器允许开发者逐行执行代码,设置断点、查看变量值、跟踪调用堆栈等,帮助定位并修复代码中的错误。 测试框架和工具则协助开发者编写和运行单元测试、集成测试及性能测试,确保软件质量。 版本控制与协作...

    最新SpringBoot项目基于vue的地方美食分享网站.zip

    同时,SpringBoot与MyBatis或JPA等ORM框架整合,方便地实现了数据的持久化操作。 整个项目还包括了MySQL数据库的设计,用于存储用户信息、美食信息、评论等数据。数据库设计合理,表结构清晰,保证了数据的一致性和...

    基于springboot的疾病防控综合系统的设计与实现.zip

    后端使用Spring Boot框架搭配MyBatis或JPA等ORM工具,前端可能采用Vue.js、React等现代JavaScript框架,数据库可以选择MySQL、PostgreSQL等关系型数据库。综上所述,该疾病防控综合系统是一个高度集成、功能丰富的...

    HibernateValidatorJSR303的参考实现使用指南.pdf

    7.3. ORM集成 7.3.1. 基于Hibernate事件模型的校验 7.3.2. JPA 7.4. 展示层校验 8. Hibernate Validator Specifics 8.1. Public API 8.2. Fail fast mode 8.3. Method validation 8.3.1. Defining method-level ...

    springboot学习思维笔记.xmind

    对主流开发框架的无配置集成 项目可独立运行,无需外部依赖Servlet容器 提供运行时的应用监控 极大地提高了开发,部署效率 与云计算的天然集成 缺点 书籍文档较少,且不够深入 ...

    wiseml:XML、RDBMS 和 RDF 格式的 marshallingunmarshaling wisebed 资源文件包。 使用 JiBX 绑定、JPAHibernate 和 Jena

    明智的机器学习存储库包含以下包: 基于绑定的 ... (测试Hudson的SCM轮询机制)Hibernate配置您可以通过在本地 Maven 设置文件~/.m2/settings.xml提供适当的配置来配置 Hibernate: &lt;settings&gt;...&lt;profiles&gt; &lt;profile&gt;

    JAVA中spring介绍以及个人使用心得

    数据访问:Spring框架提供了对各种数据访问技术的集成支持,包括JDBC、ORM框架(如Hibernate、MyBatis)、JPA等。 事务管理:Spring框架提供了强大的事务管理支持,可以通过编程式事务管理或声明式事务管理来管理...

    完整vue+springboot的商品管理系统+lunwen+开题报告+答辩PPT

    后端还集成了Spring Security、Spring Data JPA等常用库和组件,实现用户认证、数据持久化等功能。此外,系统还使用了MyBatis Plus作为ORM框架,简化了数据库访问层的开发过程。 前端架构:采用Vue.js作为主要的开发...

    vaccine-order-mgr:使用DB2中的发件箱模式进行疫苗订单事件驱动的服务的简单实现

    它是通过Smallrye微型配置文件和Kafka,基于DB2数据库,Quarkus堆栈和Tekton管道的panache的HibernateORM进行响应消息传递来完成的。 访问详细的实现方法,设计和不同的部署模型,在阅读该服务。 该项目的目标是...

    spring4.3.9相关jar包

    spring-orm.jar:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现 spring-oxm.jar:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换 spring-messaging.jar: spring-test.jar:对...

Global site tag (gtag.js) - Google Analytics