05_hibenate 지연 로드
3529 단어 Hibernate
import org.hibernate.Session;
import org.junit.Test;
import com.wang.itat.model.Classroom;
import com.wang.itat.model.Student;
import com.wang.itat.util.HibernateUtil;
public class TestManyToOne {
@Test
public void testAdd01() {
Session session = null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
// 1
Classroom c = new Classroom();
c.setGrade(2012);
c.setName(" ");
session.save(c);
Student stu1 = new Student();
stu1.setName(" ");
stu1.setNo("001");
stu1.setClassroom(c);
session.save(stu1);
Student stu2 = new Student();
stu2.setName(" ");
stu2.setNo("002");
stu2.setClassroom(c);
session.save(stu2);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.getTransaction().rollback();
} finally {
HibernateUtil.close(session);
}
}
@Test
public void testAdd02() {
Session session = null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
//
Student stu1 = new Student();
stu1.setName(" ");
stu1.setNo("003");
session.save(stu1);
Student stu2 = new Student();
stu2.setName(" ");
stu2.setNo("004");
session.save(stu2);
Classroom c = new Classroom();
c.setGrade(2012);
c.setName(" ");
session.save(c);
// update
stu1.setClassroom(c);
stu2.setClassroom(c);
// : ,
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.getTransaction().rollback();
} finally {
HibernateUtil.close(session);
}
}
@Test
public void testAdd03() {
Session session = null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
Classroom c = new Classroom();
c.setGrade(2012);
c.setName(" ");
// classroom , student ,
Student stu1 = new Student();
stu1.setName(" ");
stu1.setNo("005");
session.save(stu1);
Student stu2 = new Student();
stu2.setName(" ");
stu2.setNo("006");
session.save(stu2);
stu1.setClassroom(c);
stu2.setClassroom(c);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.getTransaction().rollback();
} finally {
HibernateUtil.close(session);
}
}
@Test
public void testDelete01() {
Session session = null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
Student stu = (Student)session.load(Student.class, 7);
session.delete(stu);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.getTransaction().rollback();
} finally {
HibernateUtil.close(session);
}
}
@Test
public void testLoad() {
Session session = null;
try {
session = HibernateUtil.openSession();
session.beginTransaction();
Student stu = (Student)session.load(Student.class, 1);
// sql
System.out.println(stu.getName());
// student Classroom , sql
System.out.println(stu.getClassroom().getName());
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.getTransaction().rollback();
} finally {
HibernateUtil.close(session);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JPA] 즉시로딩(EAGER)과 지연로딩(LAZY) (왜 LAZY 로딩을 써야할까?) (1)Proxy는 이 글의 주제인 즉시로딩과 지연로딩을 구현하는데 중요한 개념인데, 일단 원리는 미뤄두고 즉시로딩과 지연로딩이 무엇인지에 대해 먼저 알아보자. 눈 여겨 볼 곳은 'fetch = FetchType.EAGER...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.