본문 바로가기

Programming!

Spring Data JPA에서 @Query사용시 Parameter

기존 고x몰이라는 PHP 쇼핑몰을 Java/JPA로 전환하는중 DB 테이블에 1:1 매핑된 Entity로는 뭔가 CUD 관련 처리 하는게 불안해서, 

(실제 type이 망.. 단순 true/false가 고x몰 DB 하나의 테이블에 어떤 컬럼은 y / n 어떤 컬럼은 o / null 어떤 컬럼은 1 / 0 어떤 컬럼은 Y / N.....으..)

그래서.. 가능하면 update시에 필요 entity를 별도 생성하거나 컬럼별 update를 하도록 하고 있다.

 

컬럼별 업데이트를 할 경우 여러개의 param을 사용하기도 하는데, 그냥 Object를 넘겨서 처리하는 것이 좀 더 깔끔해 보인다.

(라고 나는 주장한다~~~~)

 

기존 : 

@Modi..
@Query("update User set name = :name, age = :age, ssn = :ssn where id = :id")
int updateSpecificAttribute(@Param("name") String name, @Param("age") Integer age, @Param("ssn") String ssn, @Param("id") Long id );

 

2B : 

@Modi..
@Query("update User set name = :#{#paramUser.name}, age = :#{#paramUser.age}, ssn = :#{#paramUser.ssn} where id = :#{#paramUser.id}")
int updateSpecificAttribute(@Param("paramUser") User user );