`
pengwei841221
  • 浏览: 72227 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JPA 教程(二)

    博客分类:
  • JPA
阅读更多

使用XML元数据
除了使用注解提供元数据信息外,JPA也允许我们通过XML提供元数据信息。

条条道路通罗马,路路都是安康道,开发者安全可以根据自己的习惯喜好择一而从。

按照JPA的规范,如果你提供了XML元数据描述信息,它将覆盖实体类中的注解元数据信息。

XML元数据信息以orm.xml 命名,放置在类路径的META-INF目录下。


JPA尽量让XML和注解的元数据在描述的结构上相近,降低学习曲线和转换难度,所以我们在学习注解元数据后,学习XML元数据变得非常简单。

下面,我们给出以上实体的XML描述版本,你可以对照注解的描述进行比较学习:
代码清单 6 XML元数据配置:orm.xml

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
version="1.0">
      ①实体对象所在的包
      <package>com.baobaotao.domain</package>
      <entity class="Topic">
            ②Topic实体配置
            <table name="T_TOPIC" />
            <attributes>
                   <id name="topicId">
                        <column name="TOPIC_ID"/>
                        <generated-value strategy="TABLE" />
                  </id>
                        
                  <basic name="topicTitle">
                        <column name="TOPIC_TITLE" length="30" />
                  </basic>

                  <basic name="topicTime">
                        <column name="TOPIC_TIME" />
                        <temporal>DATE</temporal>
                  </basic>

                  <basic name="topicViews">
                        <column name="TOPIC_VIEWS" />
                  </basic>
            </attributes>
      </entity>

      <entity class="PollTopic">
            ②PollTopic实体配置
            <discriminator-value>2</discriminator-value>
            <attributes>
                  <basic name="maxChoices">
                        <column name="MAX_CHOICES" />
                  </basic>

                  <one-to-many name="options" mapped-by="pollTopic">
                        <cascade>
                              <cascade-all/>
                        </cascade>
                  </one-to-many>
            </attributes>
      </entity>

      <entity class="PollOption">
            ②PollOption实体配置
            <table name="T_POLL_OPTION" />
            <attributes>
                  <id name="optionId">
                        <column name="OPTION_ID" />
                        <generated-value strategy="TABLE" />
                  </id>

                  <basic name="optionItem">
                        <column name="OPTION_ITEM"/>
                  </basic>

                  <many-to-one name="pollTopic" >
                        <join-column name="TOPIC_ID" nullable="false"/>
                  </many-to-one>

            </attributes>
      </entity>

      <entity class="Post">
            ②Post实体配置
            <table name="T_POST" />
            <attributes>
                  <id name="postId">
                        <column name="POST_ID" />
                        <generated-value strategy="TABLE" />
                  </id>

                  <basic name="postText" fetch="EAGER">
                        <column name="POST_TEXT" column-definition="LONGTEXT NOT NULL"/>
                        <lob/>
                  </basic>

                  <basic name="postAttach" fetch="LAZY">
                        <column name="POST_ATTACH" column-definition="BLOB"/>
                        <lob/>
                  </basic>
            </attributes>
      </entity>
</entity-mappings>

从代码清单 6中,我们可以看出PollTopic并不需要通过特殊配置指定和Topic的继承关系,这些信息将从实体类反射信息获取。

所以从严格意义上来说,元数据信息或XML和实体类结构信息共同构成的。

 

 

 

分享到:
评论

相关推荐

    JPA教程JPA教程JPA教程

    在性能优化方面,JPA提供了缓存机制,包括一级缓存(由EntityManager实例维护)和二级缓存(可选,由缓存提供者如Hibernate的SecondLevelCache实现)。缓存能够提高数据读取速度,减少对数据库的访问次数。另外,JPA...

    spring data jpa 教程

    第二章:JpaRepository 基本功能 JpaRepository 是 Spring Data JPA 中提供的一个基础接口,它扩展自 PagingAndSortingRepository,并且增加了一些额外的、常用的操作方法。通过实现 JpaRepository 接口,开发者可以...

    Spring-data-jpa常用教程.pdf

    #### 二、Spring-data-jpa 与 Spring 整合 Spring-data-jpa 与 Spring 的整合非常紧密,它利用 Spring 的依赖注入和事务管理功能,使得开发者可以轻松地在应用程序中集成数据访问逻辑。下面将详细介绍整合的关键...

    JPA教程(全部为PDF格式的电子书)

    本教程集合了三本PDF电子书,旨在帮助学习者全面掌握JPA的使用。 ### 第一部分:JPA基础 《JPA_Basic.pdf》这本书可能涵盖了以下核心概念: 1. **ORM概述**:解释了ORM技术如何将Java对象与数据库表进行映射,...

    JPA入门实战教程

    ### JPA入门实战教程知识点详解 #### 一、JPA简介与重要性 - **JPA定义**: JPA(Java Persistence API)是一种为Java应用程序提供持久化能力的标准接口,允许开发者将Java对象映射到关系型数据库中的表,从而简化...

    JPA2.0高级教程

    ### JPA2.0 高级教程知识点概览 #### 一、JPA2.0简介与特性 **Java Persistence API (JPA)** 是一种用于处理数据库操作的标准接口,为Java开发人员提供了一种对象关系映射(ORM)机制。JPA2.0作为JPA的一个重大...

    MyEclipse JPA 教程

    ### MyEclipse JPA 教程知识点详述 #### 一、引言 - **JPA简介**:Java Persistence API (JPA) 是一种用于管理关系型数据库的对象关系映射 (ORM) 规范,类似于 Hibernate。JPA 成为了 Java EE 5 规范的一部分,它...

    尚硅谷JPA视频教程

    JPA视频_二级缓存 · 18. JPA视频_JPQL_HelloWorld · 19. JPA视频_JPQL_查询缓存 · 20. JPA视频_JPQL_ORDER BY 和 GROUP BY · 21. JPA视频_JPQL_关联查询 · 22. JPA视频_JPQL_子查询和内建函数 · 23. ...

    Spring Data JPA数据库操作教程.zip

    本教程将深入探讨Spring Data JPA如何进行数据库操作,并结合DAO层(数据访问对象)的使用,帮助开发者更高效地进行数据管理。 首先,我们需要理解JPA(Java Persistence API)的概念。JPA是Java标准,定义了一种...

    JPA讲解视频

    在描述中提到的"基于Hibernate的JPA",意味着这个视频教程可能会深入到如何使用Hibernate作为JPA的实现。Hibernate是一个流行的开源对象关系映射(ORM)框架,它完全支持JPA规范,使得开发者可以利用Hibernate的强大...

    JPA教程

    综上所述,JPA教程涵盖了Java对象与关系数据库的映射,以及如何使用JPA进行数据操作、查询和事务管理,是Java开发者掌握数据库操作的重要工具。学习和理解JPA能帮助开发人员更高效地管理数据,提升应用的性能和可...

    openjpa 教程

    OpenJPA教程主要涵盖了以下几个核心知识点: 1. **JPA简介**:JPA允许开发者使用面向对象的方式来操作数据库,通过ORM映射,将数据库表与Java类关联起来。它提供了一套规范,包括实体(Entity)、实体管理器...

    jpa教程 JPA

    ### JPA教程:Java Persistence API详解 #### 一、引言 Java Persistence API (JPA) 是一种用于处理关系数据库的标准 Java 规范,它提供了一种对象关系映射(ORM)方法来管理 Java 应用程序中的持久化数据。JPA 的...

    尚硅谷 jpa

    ### 尚硅谷 JPA 教程知识点概览 #### 一、JPA 概述 - **定义**:Java Persistence API (JPA) 是 Java 平台标准的一部分,旨在为 Java 应用程序提供对象持久化的功能。它是一种 ORM (Object-Relational Mapping) ...

    JPA 基础教程 一本适合初学者的教程

    9. **二级缓存(Second-Level Cache)**: JPA允许使用二级缓存来提高性能,它可以缓存整个实体或实体的一部分,避免重复的数据库查询。 10. **实体图形(Entity Graph)**: 这是JPA 2.1引入的新特性,用于更精细地...

    Spring-data-jpa常用教程

    二、Spring Data JPA核心组件 2.1 Repository接口 Repository接口是Spring Data JPA的核心,它是数据访问层的基础。通过定义特定的Repository接口,Spring Data JPA会自动生成实现类,提供CRUD(创建、读取、更新、...

    01_传智播客JPA详解_全面阐释和精彩总结JPA

    9. **二级缓存(Second-Level Cache)**:探讨如何利用JPA的二级缓存提高应用程序的性能。 10. **实体监听器(Entity Listeners)**:学习如何使用实体监听器来执行特定的业务逻辑,如在插入、更新或删除时触发某些...

    jpa 全面学习资料

    - **第二级缓存(Second-Level Cache)**: 提高性能,减少数据库访问。 - **多态性(Polymorphism)**: 支持不同类型的实体在同一查询结果中。 - **实体图形(Entity Graph)**: 控制加载特定的实体属性集。 - **...

    JPA 资料大集合

    **JPA教程**通常会涵盖以下内容: 1. **环境配置**:如何在项目中集成JPA,如Maven或Gradle依赖,以及配置持久化单元(persistence.xml)。 2. **基本操作**:创建、读取、更新和删除(CRUD)操作,包括 ...

Global site tag (gtag.js) - Google Analytics