블로그에 게시하는 위 글은 전체적인 내용 정리가 아닌
책을 읽으면서 새로 알게된 내용이나 제가 중요하다고 생각하는 내용을 정리한 글입니다.
관계형 데이터베이스와 객체지향 프로그래밍을 중간에서 패러다임 일치를 시켜주는 기술
JPA <- Hibernate <- Spring Data JPA
개발자 : 객체지향적으로 프로그래밍
JPA : 프로그래밍된 것을 관계형 데이터베이스에 맞게 SQL 생성
DB : SQL 구문 실행
-> 개발자는 SQL에 종속적이지 않게됨
Spring Data 하위 프로젝트는 기본적으로 CRUD 인터페이스가 같다.
주요 어노테이션을 클래스에 가깝게 두어야 함
(ex. @Entity는 맨 아래에, @Getter은 맨 위에(중요도 낮음))
이 곳에서도 언급을 하셨었다.
Entity 클래스를 생성하실때, 주의하실것은 무분별한 setter 메소드 생성입니다.
자바빈 규약을 생각하시면서 getter/setter를 무작정 생성하시는 분들이 계시는데요.
이렇게 되면 해당 클래스의 인스턴스 값들이 언제 어디서 변해야하는지 코드상으로 명확히 구분할수가 없어, 차후 기능변경시 정말 복잡해집니다.
해당 필드의 값 변경이 필요하면 명확히 그 목적과 의도를 나타낼 수 있는 메소드를 추가하셔야만 합니다.
생성자로 생성
해당 이벤트에 맞는 public 메소드 생성
people.setAge(20); // 잘못된 예
people.plusAge(); // 올바른 예
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
application.properties에 추가