세 션 닫 기 인 스 턴 스 분석

2180 단어
본 고 는 주로 hibenate 가 session 의 종료 에 관 한 것 으로 구체 적 으로 다음 과 같다.

Student student = new Student(); 
    student.setName("Jan"); 
    student.setAge("22"); 
    student.setAddress("      "); 
    Session session =HibernateUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    session.save(student); 
    session.flush(); 
    session.getTransaction().commit(); 

1. getCurrentSession () 과 openSession () 의 차이 점 은?
  • getCurrentSession() 로 만 든 session 은 현재 스 레 드 에 연결 되 며 openSession() 을 사용 하면 만 든 session 은
  • 되 지 않 습 니 다.
  • 사용 getCurrentSession() 으로 만 든 session 은 commt 나 rollback 에서 자동 으로 닫 히 고 openSession() 을 사용 하면 만 든 session 은 수 동 으로 닫 혀 야 합 니 다
  • 2. 사용 getCurrentSession() 은 hibenate. cfg. xml 파일 에 다음 과 같은 설정 을 추가 해 야 합 니 다.
  • 로 컬 사무 (jdbc 사무)
  • 를 사용 하면thread
  • 전역 사무 (jta 사무)
  • 를 사용 하면jta openSession() getCurrentSession() 는 어떤 차이 와 관련 이 있 습 니까?
    Session Factory 가 시 작 될 때 Hibernate 는 설정 에 따라 해당 하 는 Current Session Context 를 만 들 고 getCurrentSession() 호출 될 때 실제 실행 되 는 방법 은 CurrentSessionContext.currentSession() 입 니 다.currentSession() 실행 시 현재 세 션 이 비어 있 으 면 currentSession 은 Session Factory 의 openSession 을 호출 합 니 다.그래서 getCurrentSession() 자바 EE 에 게 세 션 을 더 잘 얻 는 방법 입 니 다.
    많은 경우 에 나타 나 는 session is close(); 이 유 는 바로 당신 이 hibenate. cfg. xml 에 설정 되 어 있 기 때 문 입 니 다.
    
    thread 

    시스템 이 commit(); 실 행 된 후에 session 을 닫 았 습 니 다. 이 럴 때 수 동 으로 session 을 닫 으 면 당연히 오류 가 발생 합 니 다.
    총결산
    이상 은 본 논문 에서 세 션 의 닫 기 인 스 턴 스 분석 에 관 한 모든 내용 입 니 다. 도움 이 되 기 를 바 랍 니 다.관심 이 있 는 친 구 는 본 사이트 의 다른 관련 주 제 를 계속 참고 할 수 있 습 니 다. 부족 한 점 이 있 으 면 댓 글로 지적 해 주 십시오.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기