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

          雪山飛鵠

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

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

          Department.java
          package com.many2one.bean;

          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;

          @Entity
          @Table(name
          ="department",catalog="Hibernate_Many2One")
          public class Department {
              
              
          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="Hibernate_Many2One")
          public class Employee {
              
              
          private int id;
              
          private String name;
              
          private Department department;
              @Id
              @Column(name
          ="id")
              @GeneratedValue(strategy
          =GenerationType.AUTO)
              
          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;
              }
              
              
          }
          導出的sql
          create table Hibernate_Many2One.department (
                  id 
          integer not null auto_increment,
                  name 
          varchar(255),
                  
          primary key (id)
              )

              
          create table Hibernate_Many2One.employee (
                  id 
          integer not null auto_increment,
                  name 
          varchar(255),
                  deptid 
          integer,
                  
          primary key (id)
              )

              
          alter table Hibernate_Many2One.employee 
                  
          add index FK4722E6AE3829E242 (deptid), 
                  
          add constraint FK4722E6AE3829E242 
                  
          foreign key (deptid) 
                  
          references Hibernate_Many2One.department (id)

          測試代碼
          @Test
              
          public void insert(){
                  Session session
          =HibernateSessionFactory.getSession();
                  Transaction transaction
          =session.beginTransaction();
                  
          try {
                      transaction.begin();
                      Department department
          =new Department();
                      department.setName(
          "軟件測試部");
                      Employee employee
          =new Employee();
                      employee.setName(
          "張三");
                      employee.setDepartment(department);
                      session.save(employee);
                      transaction.commit();
                  } 
          catch (HibernateException e) {
                      e.printStackTrace();
                  }
              }
              
              
              @Test
              
          public void select(){
                  Session session
          =HibernateSessionFactory.getSession();
                  
          try {
                      Employee employee
          =(Employee) session.get(Employee.class1);
                      System.out.println(employee.getName());
                      System.out.println(employee.getDepartment().getName());
                  } 
          catch (HibernateException e) {
                      e.printStackTrace();
                  }
              }
          posted on 2010-10-18 15:46 雪山飛鵠 閱讀(1494) 評論(1)  編輯  收藏 所屬分類: Hibernate

          Feedback

          # re: Hibernate多對一雙向關聯(Annotation配置) 2013-07-18 16:23 木葉下
          問一下,部門department應該是不能重復的字段,如果設置成unique,就保存不成功,請問怎么處理?  回復  更多評論
            

          主站蜘蛛池模板: 喜德县| 绥芬河市| 永登县| 鄂尔多斯市| 安溪县| 巴东县| 鲜城| 洛隆县| 吴桥县| 栾城县| 米泉市| 定结县| 福安市| 黑山县| 彭阳县| 台州市| 文水县| 黎平县| 庐江县| 聂拉木县| 磐安县| 武鸣县| 克什克腾旗| 班玛县| 神池县| 东安县| 察哈| 肃宁县| 呼玛县| 海门市| 渑池县| 清镇市| 弥勒县| 安塞县| 大理市| 西峡县| 鹰潭市| 囊谦县| 美姑县| 慈溪市| 和平区|