`
liufei.fir
  • 浏览: 676073 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

描述Hibernate映射文件

阅读更多
在向大家详细介绍Hibernate之前,首先让大家了解下调用JPA的代码和调用Hibernate的代码,然后全面介绍Hibernate映射文件。

由于JPA是不需要配置的,代码里面已经包括了注释,所以下面附上Hibernate映射文件,为了使数据库里面更清楚一些,所以两者使用的表不是同一张表,JPA的表是带JPA前缀的,用@Table这个注释声明了这一点。

   1. <?xml version="1.0" encoding="UTF-8"?>
   2. 
   3. <!DOCTYPE hibernate-mapping PUBLIC 
   4. "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
   5. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
   6. <hibernate-mapping package="com.hadeslee.jpaentity">
   7. <class name="Department" table="Department">
   8. <id name="id" column="departId" type="long">
   9. <generator class="native"/>
  10. </id>
  11. <property name="deptName"/>
  12. <property name="description"/>
  13. <set name="persons">
  14. <key column="deptId"/>
  15. <one-to-many class="Person"/>
  16. </set>
  17. </class>
  18. <class name="Person" table="Person">
  19. <id name="id" column="personId" type="long">
  20. <generator class="native"/>
  21. </id>
  22. <property name="name"/>
  23. <property name="age"/>
  24. <many-to-one name="department" column="deptId" class="Department"/>
  25.  </class>
  26. </hibernate-mapping>

调用JPA的代码如下:

   1. EntityManagerFactory emf = Persistence.createEntityManagerFactory("TestSSH1PU2"); 
   2. EntityManager em = emf.createEntityManager(); 
   3. em.getTransaction().begin(); 
   4. com.hadeslee.jpaentity.Person p = new com.hadeslee.jpaentity.Person(); 
   5. p.setAge(26); 
   6. p.setName("千里冰封"); 
   7. 
   8. com.hadeslee.jpaentity.Department dept = em.find
      (com.hadeslee.jpaentity.Department.class, Long.valueOf("3")); 
   9. System.out.println("找到的dept=" + dept); 
  10. em.remove(dept); 
  11. em.getTransaction().commit();

调用Hibernate的代码如下:

   1. Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
   2. session.getTransaction().begin(); 
   3. Department dept = (Department) session.load(Department.class, 2); 
   4. session.delete(dept); 
   5. session.getTransaction().commit();

最后发现是JPA是不能删除的,而Hibernate这边的调用可以删除,一开始我还以为是toplink的实现问题,后来特意把实现改成 Hibernate的实现,也同样。所以有可能是JPA的要求必须得这样做,不能替我们自动完成一些东西,是利于安全。这可能就是标准和流行的差别吧。以上介绍Hibernate映射文件。
分享到:
评论

相关推荐

    hibernate基础实验

    掌握Hibernate的基本功能和基本用法 通过Hibernate将一个Java对象插入到数据库表中 ...(5) 可以利用Hibernate框架根据配置和类及映射文件生成数据库表结构,反过来,也可以根据数据库表结构生成持久化类和映射文件。

    Hibernate注释大全收藏

    Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...

    hibernate jar包

    web开发不可缺少的,hibernate 很强大的映射描述文件 解压即可

    SSH2(spring3.2+strust2.3.4+hibernate4.2)框架演示代码

    Hibernate是一个对象关系映射(ORM)框架,用于将Java对象映射到关系数据库中的表。 以下是一个SSH2框架演示代码的资源描述: 项目结构 Web层(Struts2) struts.xml:Struts2的配置文件,定义Action和Result等。...

    CRUD-HibernateJPA:使用HibernateJPA框架进行对象关系映射的Java(Maven)中的CRUD

    CRUD-HibernateJPA JPA: Java Persistence API是标准... Hibernate: Hibernate是一种用Java语言编写的对象关系映射框架,它通过使用文件(XML)或Java注释来促进传统关系数据库和应用程序的对象模型之间的属性映射。

    从J2SE到J2EE知识点介绍

    2. 映射文件 197 3. Hibernate配置 200 (六) 通过Session完成基本操作 204 1. 保存数据(源代码:hibernate_0100) 204 2. 删除数据(源代码:hibernate_0200) 205 3. 更新数据(源代码:hibernate_0300) 207 4. ...

    CatFramework持久层

    同时多数据库支持:同样一个pojo,可以保存到不同的数据库,而不且每个数据库都加载映射文件。 同结构表支持:一个POJO可以保存在不同的表中,而这个表可以在数据库中没有,保存时持久层自动创建这个同结构表. 动态...

    流程管理系统,rbac,dwr

    利用Spring的AOP来做声明式事务,利用Spring的Annotation方式基本达到了零配置,持久层全部使用Hibernate Annotation方式,主要采用的是标准的JPA注解,这样减少了大量的Hibernate映射文件,提高了可维护性,Java与...

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库)

    struts2+spring+hibernate(实现XML和Annotation两种方式操作数据库) 项目描述: 框架及版本:struts2 + spring3.0 +...1、一种方法采用XML文件映射的方式 2、第二种方法采用annotation方式 注意spring配置文件的配置

    YB.ORM:用于C ++的对象关系映射(ORM)的工具-开源

    YB.ORM是用于C ++的对象关系映射(ORM)的工具。 受到Hibernate或SQLAlchemy之类的启发。 应该与数据库无关。 包括用于域对象代码生成的工具。 表的元数据描述是一个XML文件。

    基于SSH架构的在线答疑系统.doc

    4.4.2编写POJO映射文件 23 4.4.3连接数据库 24 4.3 DAO(数据访问对象层)的实现 25 4.3.1编写DAO接口 26 4.3.2编写实现类 26 4.4 Service层(业务逻辑层)的实现 27 4.5 Web层的实现 28 4.6本章总结 28 第五章 智能答疑...

    Java语言基础下载

    创建映射文件 696 操纵持久化对象 698 选择继承关系的映射方式 699 映射多对一多态关联 702 内容总结 705 独立实践 705 第三十六章:HQL介绍 706 学习目标 706 HQL的出现 707 进入HQL世界 707 聚合 708 分组 709 在...

    jdbc基础和参考

    读取hibernate的配置文件和映射文件 3.构建SessionFactory对象 Transaction 1.事务管理对象 Query 1.查询对象,HQL Criteria 1.hibernate提供的更面向对象的一种查询方式。 准备工作: 1.java中的POJO对象存在...

    ibatis 开发指南(pdf)

    这里的“半自动化”,是相对Hibernate 等提供了全面的数据库封装机制的“全自动化” ORM 实现而言,“全自动”ORM 实现了POJO 和数据库表之间的映射,以及SQL 的自动 生成和执行。而ibatis 的着力点,则...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    8.4.2 Annotation与部署描述文件 315 8.5 开发有状态的Session Bean 318 8.6 Session Bean的生命周期 321 8.6.1 无状态Session Bean的生命周期 321 8.6.2 有状态Session Bean的生命周期 322 8.6.3 定制Session Bean...

    Python使用Pandas库实现MySQL数据库的读写

    对象关系映射技术,即ORM(Object-Relational Mapping)技术,指的是把关系数据库的表结构映射到对象上,通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 在Python中,最有名...

    Spring面试题

    类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、 4. 说下Hibernate的缓存...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................

    【计算机软件毕业设计】二手车交易平台的分析、设计与实现文献综述1.doc

    文献综述 摘 要 Web...无法使用多个表的复合查询,必须使用SQL语句,这样 使得表的映射文件失去意义。 1.4 Hibernate框架 M. Raible学者认为,Hibernate是一个面对Java环境的对象/关系数据库映射工具, 它对JDBC进

Global site tag (gtag.js) - Google Analytics