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

          雪山飛鵠

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

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            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;
              }
              
              
          }
          導(dǎo)出的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多對一雙向關(guān)聯(lián)(Annotation配置) 2013-07-18 16:23 木葉下
          問一下,部門department應(yīng)該是不能重復(fù)的字段,如果設(shè)置成unique,就保存不成功,請問怎么處理?  回復(fù)  更多評論
            

          主站蜘蛛池模板: 抚松县| 徐水县| 恭城| 旺苍县| 揭西县| 得荣县| 堆龙德庆县| 耿马| 织金县| 茶陵县| 邵武市| 郎溪县| 长治县| 徐闻县| 侯马市| 施甸县| 长宁区| 陕西省| 葫芦岛市| 呈贡县| 五寨县| 杭州市| 惠水县| 星座| 中阳县| 进贤县| 荥阳市| 资源县| 临潭县| 屏东市| 德清县| 休宁县| 锡林浩特市| 高要市| 上饶县| 南和县| 思茅市| 新兴县| 泰来县| 图木舒克市| 怀安县|