`

Persistence Unit中的类集合

    博客分类:
  • EJB3
阅读更多
一个persistence unit将固定数量的一组类映射到关系数据库。缺省情况下,如果你没有在persistence.xml中指定任何元数据,persistence provider就会对包含该persistence.xml的JAR文件进行扫描,从根目录开始搜寻任何标注有 @javax.persistence.Entity注解的类,并将这些类添加到由persistence unit管理的类集合中。此外,你还可以通过<jar-file>元素指定额外的JAR文件,以供persistence provider搜索。该元素的值不能使用绝对路径,只能是一个以包含persistence.xml的JAR文件为基准的相对路径。

  <persistence>
  <persistence-unit name="titan">
  <jta-data-source>java:/OracleDS</jta-data-source>
  <jar-file>../lib/customer.jar</jar-file>
  <properties>
  <property name="org.hibernate.hbm2ddl">update</property>
  </properties>
  </persistence-unit>
  </persistence>
  JAR文件的自动扫描在Java EE环境下是保证可以正常执行的,但在Java SE应用程序中却无法做到可移植。理论上,要决定必须搜索哪些JAR文件也许是不太可能的。不过,现实中这不是问题。参与EJB 3.0专家组的主要厂商都非正式地宣称过,它们会毫无疑问的在Java SE中支持这一特性。无论是否使用自动JAR文件扫描,你都可以用<class>元素显式的列出persistence unit中的类集合。

  <persistence>
  <persistence-unit name="titan">
  <jta-data-source>java:/OracleDS</jta-data-source>
  <class>com.titan.domain.Cabin</class>
  <class> com.titan.domain.Customer</class>
  <properties>
  <property name="org.hibernate.hbm2ddl">update</property>
  </properties>
  </persistence-unit>
  </persistence>
  <class>元素中所列的Cabin和Customer类将会与其他从persistence unit中检索出来的类一起被添加到类集合中。如果不希望自动扫描Persistence.xml中JAR文件中的类,那么你可以使用< exclude-unlisted-classes>元素。

  <persistence>
  <persistence-unit name="titan">
  <jta-data-source>java:/OracleDS</jta-data-source>
  <class>com.titan.domain.Cabin</class>
  <class>com.titan.domain.Customer</class>
  <exclude-unlisted-classes/>
  <properties>
  <property name="org.hibernate.hbm2ddl">update</property>
  </properties>
  </persistence-unit>
  </persistence>
  最终,类集合将由所有下列元数据的合集来决定。

  包含persistence.xml的JAR文件中标有@Entity注解的类(除非指定了<exclude- unlisted-classes>)

  <jar-file>元素指定的JAR文件里标有@Entity注解的类

  在META-INF/orm.xml文件里映射的类(如果存在该文件的话)

  在<mapping-file>元素所指定的XML文件中映射的类

  任何用<class>元素列出的类

  通常情况下,你无需指定<class>,<jar-file>或<mapping-file>元素。但是有一种情形你可能需要使用上述元素,即当你需要在两个或多个persistence unit中映射同一个类时。
分享到:
评论

相关推荐

    Apress.Pro.EJB.3.Java.Persistence.API.pdf

    本书详细介绍了如何配置JPA,包括在Java应用服务器中设置持久化单元(Persistence Unit),以及如何在persistence.xml文件中定义数据源、提供者和其他配置属性。同时,书中还涵盖了事务管理和并发控制,这是多用户...

    DoublePersistenceUnit

    `PersistenceUnit` 是 JPA 中的一个重要组成部分,它是数据库连接、实体类、映射元数据等配置信息的集合。 在描述中没有提供具体细节,但“DoublePersistenceUnit”可能是指在一个应用中使用两个不同的`Persistence...

    ejb3中文版

    持久化单元(Persistence Unit)是EJB3中用于管理实体Bean和其他持久化资源的基本单位。一个持久化单元定义了一个特定的类集合与数据库之间的映射关系。为了有效地使用实体管理器(EntityManager)进行实体的创建、...

    ejb3.pdf

    在EJB3中,持久化单元是一个非常核心的概念,它定义了一个特定的类集合与数据库之间的映射关系。每个持久化单元都代表了一个特定的应用场景,用于管理和操作一组相关的实体对象。 #### 四、持久化单元的定义与配置 ...

    JPA笔记

    在JPA中,一个持久化单元(Persistence Unit)是实体类的集合,它定义了与数据库的连接配置以及事务处理方式。在提供的描述中,`persistence.xml`文件是JPA配置的核心,它包含了关于持久化单元的详细信息。例如,`...

    Java EE 6企业级应用开发教程:第10章 JPA.ppt

    - 定义持久化单元(persistence unit)在`persistence.xml`中,配置事务类型和数据源。 - 实体管理器(EntityManager)是JPA的核心,负责管理实体对象和数据库交互,维护持久化上下文(persistence context),...

    spring 使用 Jpa的笔记

    Spring框架与Java Persistence API (JPA)的结合使用是当前企业级应用开发中的常见实践之一。Spring为JPA提供了很好的集成支持,使得开发者能够更加方便地管理持久层逻辑。 #### 二、所需依赖库(JAR包) 在项目中...

    JPA API CHM

    Persistence Unit是JPA中的一个配置概念,它定义了要持久化的实体类集合以及相关的连接信息。在`persistence.xml`文件中配置。 综上所述,JPA API CHM文件中可能包含了关于JPA的详细文档,包括以上提到的各个方面,...

    JPA应用源码

    5. **持久化单元(Persistence Unit)**:定义了应用程序中所有要管理的实体集合,以及与之关联的数据库连接信息。在`persistence.xml`配置文件中定义。 6. **查询(Query)**:JPA提供两种类型的查询,一种是JPQL...

    jpa2.0jar包

    4. **持久化单元(Persistence Unit)**: 在`persistence.xml`配置文件中定义,它定义了数据源、JPA供应商、实体类等信息。 5. **查询语言(JPQL)**: JPA 提供了自己的查询语言,类似SQL,但面向对象,用于从...

    Java持久性API(JPA)

    2. **持久上下文(Persistence Context)**:持久上下文是指那些被持久化操作所管理的对象的集合,它负责跟踪实体对象的状态变化。 3. **实体管理器(Entity Manager)**:用于管理实体对象的生命周期,执行持久化操作的...

    JPA开发JAR包

    1. **配置持久化单元(Persistence Unit)**:在`persistence.xml`文件中定义数据库连接信息,包括数据源、供应商、版本等。 2. **获取实体管理器工厂**:通过`Persistence.createEntityManagerFactory()`方法,根据...

    JPA中实现双向多对多的关联关系示例代码

    这段代码首先创建了`Student`和`Course`的实例,然后将它们添加到对方的集合中,最后调用`em.persist()`方法持久化这些实体。这样,JPA会自动处理中间表的插入,实现双向多对多的关联。 在查询时,我们可以通过一个...

    J2EE中文API.zip

    4. **注解**:Java EE中的注解,如`@Override`、`@EJB`、`@PersistenceUnit`等,用于标注代码以实现特定功能。 5. **异常**:Java EE特有的异常类,以及如何处理这些异常的信息。 6. **示例代码**:部分API会附带...

    hibernate核心包

    使用这些核心JAR包,你可以开始设置一个基本的Hibernate环境,包括配置持久化单元(persistence unit),定义实体类,创建会话工厂,执行CRUD(创建、读取、更新、删除)操作,以及使用HQL或JPQL进行复杂查询。...

    Hibernate中文详细学习文档

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    Hibernate+中文文档

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    Hibernate 中文 html 帮助文档

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic...

    hibernate3.2中文文档(chm格式)

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

Global site tag (gtag.js) - Google Analytics