`
pengwei841221
  • 浏览: 70968 次
  • 性别: 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和实体类结构信息共同构成的。

 

 

 

分享到:
评论

相关推荐

    spring data jpa 教程

    第二章:JpaRepository基本功能 包括:代码示例JpaRepository提供的CRUD功能,还有翻页、排序等功能 第三章:JpaRepository的查询 包括:解析方法名称以自动生成查询、 NamedQueries、 @Query指定查询、本地查询...

    尚硅谷JPA视频教程

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

    尚硅谷Java视频教程_ Spring、SpringMVC、JPA、SpringData 整合案例视频

    SSSP整合_显示表单页面&使用JPA的二级缓存 · 6. SSSP整合_Ajax验证 · 7. SSSP整合_完成添加 · 8. SSSP整合_表单回显 · 9. SSSP整合_修改状态下的 Ajax 校验 · 10. SSSP整合_完成修改 · 11. SSSP整合_...

    Java进阶教程数据层全栈方案SpringData高级应用视频教程

    第二章 JPA回顾 1.JPA基础 2.JPA实战 3.JPA的重要API介绍 第三章 SpringData JPA基础 1.SpringData JPA简介 2.SpringData JPA快速入门 3.SpringData Jpa运行原理分析 第四章 SpringData JPA的多种查询方式 1.父接口...

    SpringBoot视频教程 快速上手

    第二节:Spring Data Jpa基本crud实现 第三节:自定义查询@Query 第四节:动态查询Specification使用 第五章:SpringBoot之事务管理 第一节:SpringBoot之事物管理@Transactional 第六章:SpringBoot之表单验证 第一...

    SpringBootLearning_forezp.tar.gz

    SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql SpringBoot非官方教程 | 第六篇:springboot整合mybatis SpringBoot非官方教程 | 第七篇:...

    3积分下载最新尚硅谷全套21套视频打包包括SpringCloud和SpringBoot等等

    七、尚硅谷JPA视频教程 八、尚硅谷SpringData视频 九、尚硅谷SSSP整合&分页视频 十、尚硅谷Redis视频 十一、 尚硅谷Maven视频 十二、 尚硅谷Shiro视频 十三、 尚硅谷MySQL高级视频 十四、 尚硅谷MyBatis 视频...

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

    Spring Boot JPA 二级缓存(ehcache) Spring Boot Hikari 连接池详解 Spring Boot Caffeine 本地缓存 Spring Boot Redis 缓存 Spring Boot Redis 分布式锁 Spring Boot Event 事件发布与监听 Spring Boot 集成 ...

    MyEclipse6 Java开发中文教程_全部18章

    第十三章 开发JPA 应用 第十四章 开发JSF 应用 第十四章 开发XFire Web Service 应用 第十五章 开发XFire Web Service 应用 第十六章 开发EJB 应用 第十七章 MyEclipse UML 建模 第十八章 图形界面开发-AWT,Swing...

    MyEclipse 6 Java 开发中文教程.rar

    MyEclipse 6 Java 开发中文教程.pdf 第十八章 图形界面开发--AWT,Swing,SWT.pdf 第十二章 开发Struts 2+Spring应用.pdf 第十六章 开发 EJB 应用.pdf 第十七章 MyEclipse UML 建模.pdf 第十三章 开发JPA应用.pdf ...

    通俗易懂的SSSP整合&分页教程(含配套资料)

    本视频除了对 Spring、SpringMVC、JPA、SpringData 进行 CRUD、翻页整合示范外,还涉及到了诸多企业开发时的细节:基于Restful 风格的 URL、使用 JPA 二级缓存、使用 @ResponseBody 注解完成 Ajax、把超链接转换为 ...

    JAVA基础知识点HTML格式教程编程实例20000源代码

    EAR文件、EJB-Servlet、二进制实体、嵌入式实体、实体继承、实体生命周期 实体监听、实体管理器、实体合并、实体序列化、实体主键、实体关系 实体二级表、实体更新、实体、注射、拦截、J2SE JBoss公司、JCA、JNDI、...

    MyEclipse_6开发中文教程

    第一章 安装配置开发环境 15 第二章 开发第一个Java...第十二章 开发JPA应用 252 第十三章 开发JSF应用 253 第十四章 开发XFire Web Service应用 255 第十五章 开发EJB 应用 258 第十六章 MyEclipse UML 建模 260

    myeclipse java开发中文教程

    MyEclipse 6 Java 开发中文教程(1-10章).pdf 第十一章 开发Spring+Struts+Hibernate应用.pdf 第十二章 开发Struts 2+Spring应用.pdf 第十三章 开发JPA应用.pdf 第十四章 开发JSF应用.pdf 第十五章 开发XFire ...

    MyEclipse.6.Java.开发中文教程

    第一章 安装配置开发环境 ...开发JPA应用 第十四章.开发JSF应用 第十五章.开发XFire.Web.Service应用 第十六章.开发.EJB.应用 第十七章.MyEclipse.UML.建模 第十八章.图形界面开发--AWT,Swing,SWT 全部代码.rar

    myeclipse6.0中文教程

    第十二章则介绍最新推出的 JPA 规范及其快速开发功能;第十三章介绍 Java EE 5 规范推出的 Web 层框架 JSF 的开发过程;第十四章则介绍 SOA 的基石:基于 Xfire 的 Web Service 的快速开发过程;第十五章讨论了 EJB ...

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    Java SE实践教程 pdf格式电子书 下载(二) 更新 http://download.csdn.net/source/2824040 Java SE实践教程 pdf格式电子书 下载(三) 更新 http://download.csdn.net/source/2824042 Java SE实践教程 pdf格式...

    MyEclipse.6.Java.开发中文教程(1-10章).pdf 有详细的目录(书签)

    MyEclipse 6 工具的同时,也结合从事培训的经验制作视频教程完整阐述开发过程,并配以 完整清晰基于实际项目的源代码和相关软件包,确保初学者能够完整实践书中内容,快速入 门。 本电子免费版(十章内容)文档...

Global site tag (gtag.js) - Google Analytics