描述Hibernate映射文件

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

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

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

调用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映射文件
文章路径:http://www.shufengxianlan.com/qtweb/news30/375180.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联