Ynns

jpa / update @Query문 사용해서 수정하기 본문

JPA

jpa / update @Query문 사용해서 수정하기

yunassnn 2020. 2. 7. 16:28
회원 가입 이후 최초 로그인의 경우 최초 비밀번호를 변경하기 위해서는

 

최초 로그인의 T/F를 판단해야 된다 이걸 isFirstLogin 컬럼으로 EnumYn 을 사용해 Y/N 으로 표기해 준다

이후 비밀번호를 변경하게 되면 'N' 에서 'Y' 로 변경

// Column 생성
@Column(columnDefinition ="ENUM('Y', 'N') default 'N'")
@Enumerated(EnumType.STRING)
private EnumYn isFirstPwd = EnumYn.N;

 

JPA 는 SQL 문 없이 JpaRepository 인터페이스로 메소드를 만들어 사용한다 하지만 update 문은 따로 작성해야 가능

@Modifying // select 문이 아님을 나타낸다
@Query(value = "UPDATE Member m set m.password = :password, m.isFirstPwd = 'Y' where m.email = :email", nativeQuery = true)
void changePwd(@Param("password")String password, @Param("email")String email) throws Exception;

isFirstPwd는 한 번만 바뀌어야 하기 때문에 EnumYn으로 @Param 값을 보내지 않고 'Y' 값만 들어가도록 작성했다

nativeQuery = true 의 경우 SQL문일 때, false의 경우 JSQL문일 때를 말한다

Comments