溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          SQL
          create table Department
          (
             id                   
          int not null auto_increment,
             name                 
          varchar(20),
             
          primary key (id)
          );

          create table Employee
          (
             id                   
          int not null auto_increment,
             name                 
          varchar(20),
             deptid               
          int,
             
          primary key (id)
          );

          alter table Employee add constraint FK_Reference_1 foreign key (deptid)
                
          references Department (id) on delete restrict on update restrict;
          Department.java
          package com.many2one.bean;

          import java.io.Serializable;
          import java.util.Set;

          import javax.persistence.Column;
          import javax.persistence.Entity;
          import javax.persistence.GeneratedValue;
          import javax.persistence.GenerationType;
          import javax.persistence.Id;
          import javax.persistence.OneToMany;
          import javax.persistence.Table;

          @SuppressWarnings(
          "serial")
          @Entity
          @Table(name
          ="department",catalog="jpa_many2one")
          public class Department  implements Serializable{
              
              
          private int id;
              
          private String name;
              
          private Set<Employee> sets;
              @Id
              @GeneratedValue(strategy
          =GenerationType.AUTO)
              @Column(name
          ="id")
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              @Column(name
          ="name")
              
          public String getName() {
                  
          return name;
              }
              
          public void setName(String name) {
                  
          this.name = name;
              }
              @OneToMany(mappedBy
          ="department")
              
          public Set<Employee> getSets() {
                  
          return sets;
              }
              
          public void setSets(Set<Employee> sets) {
                  
          this.sets = sets;
              }
              
              
          }
          Employee.java
          package com.many2one.bean;

          import javax.persistence.CascadeType;
          import javax.persistence.Column;
          import javax.persistence.Entity;
          import javax.persistence.GeneratedValue;
          import javax.persistence.GenerationType;
          import javax.persistence.Id;
          import javax.persistence.JoinColumn;
          import javax.persistence.ManyToOne;
          import javax.persistence.Table;

          @Entity
          @Table(name
          ="employee",catalog="jpa_many2one")
          public class Employee {
              
              
          private int id;
              
          private String name;
              
          private Department department;
              @Id
              @GeneratedValue(strategy
          =GenerationType.AUTO)
              @Column(name
          ="id")
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              @Column(name
          ="name")
              
          public String getName() {
                  
          return name;
              }
              
          public void setName(String name) {
                  
          this.name = name;
              }
              @ManyToOne(cascade
          =CascadeType.ALL)
              @JoinColumn(name
          ="deptid")
              
          public Department getDepartment() {
                  
          return department;
              }
              
          public void setDepartment(Department department) {
                  
          this.department = department;
              }
              
              
          }
          persistence.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <persistence xmlns="http://java.sun.com/xml/ns/persistence"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/persistence
              http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
           version="1.0">
              
              
          <persistence-unit name="JPA_Many2OnePU" transaction-type="RESOURCE_LOCAL">
                  
          <provider>org.hibernate.ejb.HibernatePersistence</provider>
                  
          <class>com.many2one.bean.Department</class>
                  
          <class>com.many2one.bean.Employee</class>
                    
          <properties>
                      
          <property name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.Driver"/>
                      
          <property name = "hibernate.connection.url" value = "jdbc:mysql://localhost:3306/jpa_many2one"/>
                      
          <property name = "hibernate.connection.username" value = "root"/>
                      
          <property name = "hibernate.connection.password" value = "root"/>
                      
          <property name = "hibernate.show_sql" value = "true"/>
                      
          <property name = "hibernate.format_sql" value = "true"/>
                    
          </properties>
              
          </persistence-unit>
            
          </persistence>
          JPAUtil.java
          package com.many2one.util;

          import javax.persistence.EntityManager;
          import javax.persistence.EntityManagerFactory;
          import javax.persistence.Persistence;

          public class JPAUtil {
              
              
          private static EntityManager entityManager;
              
          public static EntityManager getInstance(){
                  
          if(entityManager!=null){
                      
          return entityManager;
                  }
          else{
                      
          return makeInstance();
                  }
              }
              
          private static synchronized EntityManager makeInstance() {
                  
          if(entityManager==null){
                      EntityManagerFactory entityManagerFactory
          =Persistence.createEntityManagerFactory("JPA_Many2OnePU");
                      
          return entityManagerFactory.createEntityManager();
                  }
                  
          return null;
              }
          }

          @Test
              
          public void select(){
                  EntityManager entityManager
          =JPAUtil.getInstance();
                  Employee employee
          =entityManager.find(Employee.class1);
                  System.out.println(
          "雇員是:"+employee.getName());
                  System.out.println(
          "部門是:"+employee.getDepartment().getName());
              }
              
              @Test
              
          public void insert(){
                  EntityManager entityManager
          =JPAUtil.getInstance();
                  EntityTransaction entityTransaction
          =entityManager.getTransaction();
                  
          try {
                      entityTransaction.begin();
                      Department department
          =new Department();
                      department.setName(
          "軟件研發部");
                      Employee employee
          =new Employee();
                      employee.setName(
          "張三");
                      employee.setDepartment(department);
                      entityManager.persist(employee);
                      entityTransaction.commit();
                  } 
          catch (Exception e) {
                      e.printStackTrace();
                      entityTransaction.rollback();
                  }
              }
          posted on 2010-10-17 16:36 雪山飛鵠 閱讀(2636) 評論(0)  編輯  收藏 所屬分類: JPA
          主站蜘蛛池模板: 乐至县| 库伦旗| 清远市| 军事| 山阳县| 紫云| 浦北县| 河源市| 丹阳市| 青神县| 天津市| 剑阁县| 周至县| 漳州市| 鱼台县| 民乐县| 镶黄旗| 虹口区| 昌邑市| 绩溪县| 加查县| 五大连池市| 宜黄县| 福州市| 东乌珠穆沁旗| 德安县| 建湖县| 陵川县| 鄯善县| 马尔康县| 平果县| 玉田县| 芒康县| 沭阳县| 同心县| 苗栗县| 新余市| 嘉祥县| 双桥区| 同仁县| 巴彦县|