以前使用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注入到使用它的地方了。
分享到:
相关推荐
Spring Boot JPA - 全自动 ORM Spring Boot JPA 二级缓存(ehcache) Spring Boot Hikari 连接池详解 Spring Boot Caffeine 本地缓存 Spring Boot Redis 缓存 Spring Boot Redis 分布式锁 Spring Boot Event 事件...
(但整个ORM不是完整的JPA兼容实现)更高的性能 依赖于ASM等静态字节码技术而不是CGlib,使得改善了代理性能;依赖于动态反射框架,内部数据处理上的开销几乎可以忽略。操作性能接近JDBC水平。对比某H开头的框架,...
对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 ...
【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3 【第九章】 Spring的事务 之 9.1 数据库事务概述 ——跟我学spring3 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3 【第九章】 Spring的...
JPA实体的CRUD方法的Ebean实现 根据查询方法名称和注释动态生成查询 支持查询渠道服务 通过查询方法透明触发Ebean查询 提供基本属性的实现域基类 支持透明审核(创建,最后更改) 集成自定义存储库代码的可能性 ...
它还提供了JPA规范的实现,该规范是ORM的标准Java规范。 这是其源代码的存储库:有关更多信息,请参见 。从源头建造该构建需要Java 8 JDK作为JAVA_HOME。 您将需要来获取。 Hibernate使用作为其构建工具。 如果您不...
技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...
技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...
该平台采用SpringBoot作为核心框架,整合了Spring MVC进行前端请求处理,使用Spring Data JPA或MyBatis等ORM工具与数据库交互,实现音乐数据的管理和查询。平台功能涵盖了音乐库管理、用户账户管理、在线播放、歌曲...
技术实现上,后端利用SpringBoot简化配置和部署流程,SpringMVC负责请求响应周期,MyBatis或JPA作为ORM工具与数据库交互。前端可能使用Vue.js、React或Angular等现代JavaScript框架构建动态用户界面。系统集成了...
集成调试器允许开发者逐行执行代码,设置断点、查看变量值、跟踪调用堆栈等,帮助定位并修复代码中的错误。 测试框架和工具则协助开发者编写和运行单元测试、集成测试及性能测试,确保软件质量。 版本控制与协作...
同时,SpringBoot与MyBatis或JPA等ORM框架整合,方便地实现了数据的持久化操作。 整个项目还包括了MySQL数据库的设计,用于存储用户信息、美食信息、评论等数据。数据库设计合理,表结构清晰,保证了数据的一致性和...
后端使用Spring Boot框架搭配MyBatis或JPA等ORM工具,前端可能采用Vue.js、React等现代JavaScript框架,数据库可以选择MySQL、PostgreSQL等关系型数据库。综上所述,该疾病防控综合系统是一个高度集成、功能丰富的...
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 ...
对主流开发框架的无配置集成 项目可独立运行,无需外部依赖Servlet容器 提供运行时的应用监控 极大地提高了开发,部署效率 与云计算的天然集成 缺点 书籍文档较少,且不够深入 ...
明智的机器学习存储库包含以下包: 基于绑定的 ... (测试Hudson的SCM轮询机制)Hibernate配置您可以通过在本地 Maven 设置文件~/.m2/settings.xml提供适当的配置来配置 Hibernate: <settings>...<profiles> <profile>
数据访问:Spring框架提供了对各种数据访问技术的集成支持,包括JDBC、ORM框架(如Hibernate、MyBatis)、JPA等。 事务管理:Spring框架提供了强大的事务管理支持,可以通过编程式事务管理或声明式事务管理来管理...
后端还集成了Spring Security、Spring Data JPA等常用库和组件,实现用户认证、数据持久化等功能。此外,系统还使用了MyBatis Plus作为ORM框架,简化了数据库访问层的开发过程。 前端架构:采用Vue.js作为主要的开发...
它是通过Smallrye微型配置文件和Kafka,基于DB2数据库,Quarkus堆栈和Tekton管道的panache的HibernateORM进行响应消息传递来完成的。 访问详细的实现方法,设计和不同的部署模型,在阅读该服务。 该项目的目标是...
spring-orm.jar:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现 spring-oxm.jar:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换 spring-messaging.jar: spring-test.jar:对...