Hbernate中級聯查詢(二)

這次我們建立兩個表cat和animal

crete table cat(id int(10),idcat int(10) auto_increment primary key ,name varchar(40),sex varchar(20) foreign key(id) references animal(id));

create table animal(id int(10),animalname varchar(40));

animal的主鍵id是cat的外鍵id

加載文件方法同上篇

package dao;


import java.util.Iterator;
import java.util.List;
import java.util.Set;


import javax.management.Query;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;


import entity.Animal;
import entity.Cat;
import entity.Grade;
import entity.Student;


public class Testanimal {
private static SessionFactory sessionFactory=null;
    private static Session session=null;
    Transaction transaction=null;

    static {
    try {
sessionFactory=new Configuration().configure().buildSessionFactory();

} catch (Exception e) {
// TODO: handle exception
}
    }
    public  static void saveGradeAndStudent(){
   
    Animal animal =new Animal();
    animal.setAnimalname("laohu");
    animal.setId(2);
    Cat cat=new Cat();
    //當grade.hbm.xml中inverse=true表明有學生維護班級的關聯關係
    //grade-student-relation這張表,需要學生向該表插入數據
   
        cat.setIdcat(1);
        cat.setName("xiaomao");
        cat.setSex("mu");
        cat.setAnimal(animal);
        
    //當grade.hbm.xml中inverse=false表明有班級維護學生關聯關係,區別是多執行一個updata
    //grade.getStudents().add(student);
    session=sessionFactory.openSession();
    session.save(animal);
    session.save(cat);
    session.beginTransaction().commit();
    session.close();
    }
    public static void updateAllGrade1AndStudent1(Integer id){
session=sessionFactory.openSession();
Animal animal=(Animal) session.get(Animal.class, id);
try {
session.beginTransaction();
//grade.setGradename("dai");
//grade1.setId(13);

Set catset=animal.getCats();
Iterator iterStu=catset.iterator();
while(iterStu.hasNext()){
Cat cat=(Cat) iterStu.next();
cat.setName(cat.getName()+8);
System.out.println(cat);
}
session.getTransaction().commit();
}
catch (Exception e) {
// TODO: handle exception
session.close();
 
}



session.close();

}
    
    public static void main(String[] args) {
//saveGradeAndStudent();
updateAllGrade1AndStudent1(3);

}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章