新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
描述Hibernate映射文件
在向大家詳細(xì)介紹Hibernate之前,首先讓大家了解下調(diào)用JPA的代碼和調(diào)用Hibernate的代碼,然后全面介紹Hibernate映射文件。

由于JPA是不需要配置的,代碼里面已經(jīng)包括了注釋,所以下面附上Hibernate映射文件,為了使數(shù)據(jù)庫里面更清楚一些,所以兩者使用的表不是同一張表,JPA的表是帶JPA前綴的,用@Table這個注釋聲明了這一點。
- version="1.0" encoding="UTF-8"?>
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
package="com.hadeslee.jpaentity"> name="Department" table="Department"> name="id" column="departId" type="long"> class="native"/> name="deptName"/> name="description"/> name="persons"> column="deptId"/> class="Person"/> name="Person" table="Person"> name="id" column="personId" type="long"> class="native"/> name="name"/> name="age"/> name="department" column="deptId" class="Department"/>
調(diào)用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();
調(diào)用Hibernate的代碼如下:
- Session session = HibernateUtil.getSessionFactory().getCurrentSession();
- session.getTransaction().begin();
- Department dept = (Department) session.load(Department.class, 2);
- session.delete(dept);
- session.getTransaction().commit();
***發(fā)現(xiàn)是JPA是不能刪除的,而Hibernate這邊的調(diào)用可以刪除,一開始我還以為是toplink的實現(xiàn)問題,后來特意把實現(xiàn)改成Hibernate的實現(xiàn),也同樣。所以有可能是JPA的要求必須得這樣做,不能替我們自動完成一些東西,是利于安全。這可能就是標(biāo)準(zhǔn)和流行的差別吧。以上介紹Hibernate映射文件。
本文標(biāo)題:描述Hibernate映射文件
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/ccochdj.html


咨詢
建站咨詢
