JPA Error: could not initialize proxy - no Session 접근 JPA강의에서 분명히 이거에 대한 내용을 다뤘던 거 같은데 기억이 안난다.. 영속성 컨텍스트, Proxy, Lazy Loading에 대한 이해가 필요함. Lazy Loading 내용은 제외하고 작성하겠다. 원인 JPA를 사용할 때 흔히 볼 수 있는 에러임. DB에 저장된 값을 사용할 때 발생한다. User와 Post는 1 : N 관계를 맺고있다. Post 엔티티에서 User Fetch => Lazy로 설정해놓은 상태임. (국룰) Post를 조회할 때 API 과정을 살펴보자. 오류가 나는 컨트롤러 Post를 조회하는 내요이고, PostId를 이용해서 조회 함. Post 제목, 작성자, 내용, 등등 PostDTO..
Spring Security의 사용자 비밀번호 검사 스프링 시큐리티 예제를 보며 개발하다 보면 UserDetailsService 인터페이스의 loadUserByUsername(String username)을 구현해서 사용자 정보를 DB에서 조회하고 반환한다. 하지만 비밀번호를 체크하는 코드는 없다. 그래도 잘못된 비밀번호를 입력하면 로그인에 실패한다. 내가 작성한 코드에는 없지만 어디에선가 비밀 번호 체크를 하고 있는 것이다. 비밀 번호는 어디에서 체크할까? DaoAuthenticationProvider AuthenticationManager.authenticate(Authentication)을 호출하면 스프링 시큐리티에 내장된 AuthenticationProvider의 authenticate()메서드가..
detached entity passed to perist 발생 JPA 프로젝트에 엔티티를 영속화 및 커밋 시도하니 다음과 같은 에러가 발생 구글링 결과 CascadeType.ALL 옵션과 관련있는 듯 해보였으나 회원 가입만 구현한 상태이기 때문에 해당 문제는 아니였다. CascadeType.ALL 관련 옵션이 없으나 동일한 오류가 발생하였다면 엔티티 클래스에 @Id를 부여한 필드에 @GeneratedValue를 작성하여 AUTO, SEQUENCE, IDENTITY 전략 등 데이터베이스에게 key 값을 자동 생성하도록 하는 전략을 선택하였으면서 엔티티 객체 생성 시 Id에 해당하는 필드에 직접 값을 입력하지 않았는지 확인
detached entity passed to perist 발생 JPA 프로젝트에 엔티티를 영속화 및 커밋 시도하니 다음과 같은 에러가 발생 구글링 결과 CascadeType.ALL 옵션과 관련있는 듯 해보였으나 회원 가입만 구현한 상태이기 때문에 해당 문제는 아니였다. CascadeType.ALL 관련 옵션이 없으나 동일한 오류가 발생하였다면 엔티티 클래스에 @Id를 부여한 필드에 @GeneratedValue를 작성하여 AUTO, SEQUENCE, IDENTITY 전략 등 데이터베이스에게 key 값을 자동 생성하도록 하는 전략을 선택하였으면서 엔티티 객체 생성 시 Id에 해당하는 필드에 직접 값을 입력하지 않았는지 확인
뷰 리졸버 - InternalResourceViewResolver 스프링 부트는 InternalResourceViewResolver 라는 뷰 리졸버를 자동으로 등록하는데, 이때 application.properties 에 등록한 spring.mvc.view.prefix , spring.mvc.view.suffix 설정 정보를 사용해서 등록한다