학습 노트 5 - hibenate 에서 LOAD 와 GET 의 차이
2360 단어 Hibernate
GET:
@Test
public void testGet(){
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
Teacher t = (Teacher)session.get(Teacher.class, 1) ;
session.getTransaction().commit() ;
}
session. get () 방법 을 사용 할 때 hibenate 는 sql 문 구 를 직접 보 내 해당 하 는 데 이 터 를 찾 아 Teacher 대상 에 저장 하고 대상 데 이 터 를 직접 사용 합 니 다.
LOAD:
@Test
public void testLoad(){
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
Teacher t = (Teacher)session.load(Teacher.class, 1) ;
t.getName() ;
session.getTransaction().commit() ;
}
우리 가 session. load () 방법 을 사용 할 때 load 는 Teacher 대상 의 프 록 시 를 생 성 합 니 다. SQL 문 구 를 직접 보 내 Teacher 대상 을 추출 하 는 것 이 아니 라 프 록 시 대상 이 사용 하지 않 을 때 hibenate 는 데이터 베 이 스 를 교류 하지 않 습 니 다. 대상 이 사용 할 때 t. getName () 과 같 습 니 다.SQL 문 구 를 보 내 조회 하기 때문에 LOAD 로 불 러 올 때 모든 작업 은 session 이 닫 히 기 전에 해 야 합 니 다. 그렇지 않 으 면 지연 오류 가 발생 할 수 있 습 니 다.
@Test
public void testLoad(){
Session session = sessionFactory.getCurrentSession() ;
session.beginTransaction() ;
Teacher t = (Teacher)session.load(Teacher.class, 1) ;
session.getTransaction().commit() ;
t.getName() ;
}
13:32:29,766 ERROR LazyInitializationException:42 - could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:132)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:174)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at com.bjsxt.hibernate.vo.Teacher_$$_javassist_0.getName(Teacher_$$_javassist_0.java)
at HibernateIDTest.testLoad(HibernateIDTest.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.