JSP, JPA, form data


1. JSP form 데이터 전달

회원가입 기능을 구현했는데 jsp form에 입력한 값이 액션 메서드에 전달되지 않았다.
form 확장 태그에 modelAttribute, action 등 필요한 속성을 전부 설정했는데,,

spring-mvc-form-tutorial
여기서 천천히 읽어봤는데 set 메서드명이 path 설정과 같아야 한다는 것을 알았다.

@Builder만 있으면 될 거라고 생각했는데 jsp에서 form 데이터 전달을 하기 위해서는 setter이 필요했다.

2. JPA Query Language

@Modifying(clearAutomatically = true)
@Query("UPDATE User u 
        set u.enabled = true, u.userType='IS_AUTHENTICATED_FULLY' 
        where u.email = :email")
public int updateUserType(String email);

JPA에서 UPDATE / DELETE 명령인 경우에
@Modifying(clearAutomatically = true) 어노테이션을 반드시 붙여야 한다.

또한, @Modifying 어노테이션이 붙은 메소드를 호출하는 코드를 포함하는 메소드에
@Transactional 어노테이션을 반드시 붙여야 한다.

하지만 이번 프로젝트에서는 사용자 정보를 전부 다시 조회해서 다시 저장하는
JPA Repository 기본 메서드를 사용하는 방식으로 구현했다.