描述Hibernate映射文件

开发 后端
这里介绍Hibernate映射文件,由于JPA是不需要配置的,代码里面已经包括了注释,所以下面附上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映射文件。

【编辑推荐】

  1. 描述Hibernate检查id字段
  2. Hibernate Template简单描述
  3. Hibernate DetachedCriteria学习经验
  4. 概述Hibernate equals()方法
  5. Hibernate使用Person对象
责任编辑:佚名 来源: 比特网
相关推荐

2009-09-28 14:54:33

Hibernate映射

2009-09-29 15:58:22

Hibernate映射

2010-05-31 11:34:00

MySQL自增字段

2009-09-27 17:05:02

Hibernate p

2012-02-02 16:13:29

HibernateJava

2009-09-23 10:58:32

Hibernate T

2009-09-22 12:45:00

Hibernate性能

2009-09-28 15:43:42

Hibernate O

2009-09-21 16:30:20

Hibernate S

2012-02-06 13:34:49

HibernateJava

2009-09-22 17:41:07

Hibernate性能

2009-09-29 16:48:42

Hibernate J

2009-09-22 11:16:27

Hibernate经验

2009-09-27 13:00:56

Hibernate S

2012-02-03 11:17:33

HibernateJava

2009-09-25 10:00:47

Hibernate映射

2009-09-22 15:10:22

Hibernate映射

2012-02-03 10:07:04

HibernateJava

2009-09-21 13:56:09

Hibernate3.

2009-09-21 17:46:34

Hibernate持久
点赞
收藏

51CTO技术栈公众号