描述Hibernate映射文件

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

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

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

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

调用JPA的代码如下:

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

调用Hibernate的代码如下:

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

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

【编辑推荐】

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

2009-09-29 15:58:22

Hibernate映射

2009-09-28 14:54:33

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-22 12:45:00

Hibernate性能

2009-09-28 15:43:42

Hibernate O

2009-09-21 16:30:20

Hibernate S

2009-09-23 10:58:32

Hibernate T

2009-09-22 11:16:27

Hibernate经验

2009-09-22 17:41:07

Hibernate性能

2009-09-27 13:00:56

Hibernate S

2009-09-29 16:48:42

Hibernate J

2012-02-06 13:34:49

HibernateJava

2009-09-22 15:10:22

Hibernate映射

2012-02-03 11:17:33

HibernateJava

2009-09-25 10:00:47

Hibernate映射

2012-02-03 10:07:04

HibernateJava

2009-09-24 13:17:37

Hibernate类库

2009-09-29 10:57:25

设置Hibernate
点赞
收藏

51CTO技术栈公众号