Hibernate学习--JPA配置文件persistence.xml解析
2016-12-16 15:39
706 查看
前言
JPA和Hibernate的水太深,搞到现在还是不大明白,先拿出来晒晒。日后还会更新。JPA是什么
JavaEE5.0 的平台的 ORM 标准规范。为应用程序访问持久层提供统一的方式。(用于数据库访问之类的)JPA 与 Hibernate 的关系
JPA 是规范,Hibernate 是实现,是一个ORM框架,除此之外还有TopLink、JDO等ORM框架。 从功能上来讲,JPA 是 Hibernate 的一个子集。Hibernate 只是 JPA 的一个提供商。类似于JDBC 和 JDBC驱动提供商。(不大懂)persistence.xml配置文件解析
摘抄自网络。<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns:persistence="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 persistence_1_0.xsd "> <!-- Name属性用于定义持久化单元的名字 (name必选,空值也合法); transaction-type 指定事务类型(可选) --> <persistence-unit name="unitName" transaction-type="JTA"> <!-- 描述信息.(可选) --> <description> </description> <!-- javax.persistence.PersistenceProvider接口的一个实现类(可选) --> <provider> </provider> <!-- Jta-data-source和 non-jta-data-source用于分别指定持久化提供商使用的JTA和/或non-JTA数据源的全局JNDI名称(可选) --> <jta-data-source>java:/MySqlDS</jta-data-source> <non-jta-data-source> </non-jta-data-source> <!-- 声明orm.xml所在位置.(可选) --> <mapping-file>product.xml</mapping-file> <!-- 以包含persistence.xml的jar文件为基准的相对路径,添加额外的jar文件.(可选) --> <jar-file>../lib/model.jar</jar-file> <!-- 显式列出实体类,在Java SE 环境中应该显式列出.(可选) --> <class>com.domain.User</class> <class>com.domain.Product</class> <!-- 声明是否扫描jar文件中标注了@Enity类加入到上下文.若不扫描,则如下:(可选) --> <exclude-unlisted-classes/> <!-- 厂商专有属性(可选) --> <properties> <!-- hibernate.hbm2ddl.auto= create-drop / create / update --> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit> </persistence>
配置文件要求
必须配置在 META-INF 目录下,且配置名字是固定的 persistence.xml;顶级节点为
<persistence>,次级节点为
<persistence-unit>,JPA 的绝大部分信息配置在
<persistence>节点内;
<persistence-unit>节点 name 属性:用来指定这个
persistence单元的名称;
<persistence-unit> 节点
transaction-type属性:指定 JPA 的事务处理策略,默认为
RESOURCE_LOCAL,数据库级别的事务,只能针对一种数据库,不支持分布式事务。 若需要支持分布式事务,使用 JTA,即:
transaction-type="JTA";
如果 JPA 的提供者存在多个的时候,需要在
<provider>节点配置具体使用哪个提供者。需要是
javax.persistence.spi.PersistenceProvider的实现类;
在
<properties>节点内通过
<property>节点配置数据库连接信息;
在 节点内通过 节点配置属于具体实现的特性信息;
通过 节点来配置映射的实体类。
相关属性详解
transaction-type(事务管理)
是什么
持久性单元指定事务是如何管理的。事务类型取决于目标容器,如果目标容器是Java EE容器(例如wildfly服务器),你可以使用容器管理或者应用管理。如果不是这样的话,你只能使用应用管理。容器管理的事务(JTA事务)
容器使用Java Transaction API来管理事务。你必须将你的应用部署在Java EE容器中,并且你的数据源必须支持JTA。在persistence.xml中事务类型被设置为JTA.如果你使用Glassfish这个是默认选项。应用管理的事务(本地资源事务:Resource-Local Transaction)
由应用负责事务处理。在persistence.xml文件中,被设置为RESOUCE_LOCAL。jta-data-source
是什么
数据源指的是提供实体存储的数据库。数据源必须在服务器中注册并且使用JNDI名称指定。如果事务是由容器管理的JTA事务那么数据源必须是JTA数据源。如果事务是应用负责管理的,数据源根据在IDE中注册的JDBC数据库连接指定。在Java SE环境下,数据库可以通过数据源指定,也可以使用其他方法,取决于持久性提供者的要求。如何定义(以wildfly服务器为例)
这个需要在服务器的/bin/jboss-cli.sh下配置,这个一句两句的说不清楚,具体实现代码如下:[standalone@localhost:9990 /] ***data-source add –name=labDS –jndi-name=java:jboss/labDS***(比如此处我将jta-data-source定义为java:jboss/labDS) –driver-name=postgres –connection-url=jdbc:postgresql://localhost:5432/lab –user-name=postgres –password=666 –validate-on-match=true –background-validation=false –valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker –exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
详见下文:
http://blog.csdn.net/qq_33429968/article/details/53525150
待查询
参考资料
http://www.cnblogs.com/edwardlauxh/archive/2012/08/10/2632292.htmlhttp://blog.csdn.net/yingevil/article/details/6876874
总结
相关文章推荐
- Jpa规范中persistence.xml 配置文件解析
- JavaEE学习之JPA中配置文件persistence.xml
- JPA入门例子(采用JPA的hibernate实现版本) --- 会伴随 配置文件:persistence.xml
- Jpa规范中persistence.xml 配置文件解析
- JavaEE学习之JPA中配置文件persistence.xml(JTA与一种方式)
- Jpa规范中persistence.xml 配置文件解析
- Jpa规范中persistence.xml 配置文件解析
- jpa persistence.xml文件配置详解
- 不在JPA 的 persistence.xml 文件中配置Entity class的解决办法
- hibernate实现jpa文档,persistence.xml配置问题(javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Canno
- 学习Hibernate源码——配置文件解析,SessionFactory创建
- Tomcat服务器配置文件server.xml的配置解析及Context的配置(网上文档的学习整理)
- JPA的配置文件persistence.xml参数详解
- JPA的配置文件persistence.xml
- hibernate3 学习笔记(二) hibernate 的配置文件 hibernate.cfg.xml
- spring MVC学习笔记(二) springMVC.xml配置文件解析
- Eclipse添加xml文件提示及Hibernate配置学习
- Eclipse添加xml文件提示及Hibernate配置学习
- JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法
- Hibernate.cfg.xml配置文件解析