描述Hibernate映射文件
在向大家詳細介紹Hibernate之前,首先讓大家了解下調(diào)用JPA的代碼和調(diào)用Hibernate的代碼,然后全面介紹Hibernate映射文件。
由于JPA是不需要配置的,代碼里面已經(jīng)包括了注釋,所以下面附上Hibernate映射文件,為了使數(shù)據(jù)庫里面更清楚一些,所以兩者使用的表不是同一張表,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>
 
調(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的要求必須得這樣做,不能替我們自動完成一些東西,是利于安全。這可能就是標準和流行的差別吧。以上介紹Hibernate映射文件。
【編輯推薦】















 
 
 
 
 
 
 