'Spring'에 해당되는 글 2

  1. 2008.12.07 failed to lazily initialize a collection of role
  2. 2008.08.12 커맨드 객체 인코딩이 깨질 때
 

failed to lazily initialize a collection of role

Java/Spring | 2008. 12. 7. 01:16 | Posted by G.N.Jeong J.#
Spring 2.5.x + JPA(Hibernate)를 이용하여 하위리스트를 포함하는 도메인 객체를 불러왔을 때, 기본값인  LAZY 로딩이 되지 않았다.

구글링을 해 본 결과 LAZY 로딩은 트랜젝션 범위내에서 이루어질 수 있다는 답변이 있었다.

그래서 Spring XML설정에서 트랜젝션 관리자를 선언해 주고 설정해 주었지만 되지 않았다.
이유인 즉, Test 코드가 있는 클래스가 설정한 트랜젝션 범위에서 벗어나 있었기 때문이었다.

따라서 @Transactional 이라는 어노테이션을 테스트 클래스에 붙여주고 테스트 하니, 정상적으로 출력이 되었다.

기본적으로 트랜젝션은 annotation을 적용시, annotation이 적용된 메소드가 끝날 때 마무리 된다.
물론 이미 상위 메소드에서 트랜젝션이 있었다면, 기본값인 경우 그 상위 메소드가 끝날 때 마무리 된다.
TAG JPA, LAZY, Spring

댓글을 달아 주세요

커맨드 객체 인코딩이 깨질 때

Java/Spring | 2008. 8. 12. 15:54 | Posted by G.N.Jeong J.#
Tomcat 설정 (server.xml)도 해보고 MySQL 설정도 해 보았으나,
커맨드 객체의 값은 여전히 깨져있었다.

그래서 web.xml에 필터를 넣어주었다.

  <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
      </init-param>
  </filter>
 
  <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>


Spring에서 기본적으로 지원하는 인코딩필터다.
이 후에는 커맨드 객체의 값이 깨지질 않고 잘 바인딩 되었다.

댓글을 달아 주세요