CRUD repository 에서 제공하는 쿼리 메서드를 사용하게 되면 아마
findById 에 대해서는 들어봤을 것이다.
자세한 사항은 아래 참고 포스팅을 참고 바란다.
그리고 dto 를 사용 하게 될 경우 , 정확히는 entity 를 사용하게 될 경우
변수의 명명 규칙이 있다.
바로 camel case 규칙이다.
자세한 사항은 아래 참고포스팅을 참고 바란다.
쿼리 메서드를 사용하게 되면
예를들어 변수명이 name 일 경우나 className 같은 경우는
findByName / findByNameAndClassName
이런식으로 And 절 나오기 전 까지 구분이 된다.
허나 데이터베이스에서는 camel 케이스 보다는 언더바를 사용하는 snake 케이스를 주로 사용한다.
그러기에 자바 dto 에서는 이것을 camel 케이스로 변경하여
class_name 을 className 처럼 사용하곤한다.
여기서 문제가 발생하였다.
만약 변수명이 a_class_name
이런식으로 되어있다고 하면 dto 에서는 String aClassName
이렇게 받게 되고 findByAClassName
이렇게 사용을 해야한다.
이럴 경우엔 @Column annotation을 사용하여
@Column("a_class_name") private String name; |
이렇게 사용을 해주면 findByName으로 사용이 가능하고 persistence 쪽에서는 알아서 a_class_name 이라는 변수와 매핑을 해주게 된다.
참고 포스팅
https://thenicesj.tistory.com/394
https://thenicesj.tistory.com/443
https://thenicesj.tistory.com/270
'IT > Java' 카테고리의 다른 글
Spring 에서 async 처리 (@Async) (13) | 2023.02.19 |
---|---|
Error, Checked Exception, Unchecked Exception 비교 (11) | 2023.02.14 |
자바 Timestamp / Date / LocalDate 에서 현재 시간 구하는 방법 (4) | 2023.02.09 |
[Java] 리스트 내 요소 중복 체크 (9) | 2023.02.06 |
LOG 란? (13) | 2023.02.05 |
댓글