영속화 : 프로그램이 종료되어도 데이터를 저장공간에 영속적으로 저장하기 위한 행위
1. SQL mapping
2. ORM : 객체와 테이블을 매핑시킴
1. spring-boot-starter-data-jpa를 의존 설정해준다.
2. spring data jpa를 사용하는데 필요한 설정을 스프링 부트에 해준다.
3. 각 엔티티별로 인터페이스를 만들어준다.
이 인터페이스는 repository를 상속하여 만든다.
// T : 엔티티 타입
// ID : 엔티티의 식별자의 타입
public interface Repository<T, ID> {
}
4. DB를 사용하는 메소드들을 규칙에 맞게 인터페이스에 정의해준다.
주의 : findBy를 남용하면 안되고, 여러 필드를 사용해야할 경우, @Query, SQL, 스펙/QueryDSL을 사용해준다!
ex) public interface UserRepository extends Repository<User, Long) { @Query("select u from User u where u.age = :age") List<User> findUser(@Param("age") Long age); } // 나이 조건을 직접 작성하고, @Param을 통해 조건을 간단하게 넣어준다.
5. 만들어진 결과물을 필요한 곳에서 @Autowired하여 사용한다.