SPRING/Spring Data JPA(4)
-
[Spring Data JPA] 프로젝트 세팅
1. JPA, DB 라이브러리 메이븐 등록 1) pom.xml 수정 spring-boot-starter 를 spring-boot-starter-data-jpa 로 변경 이 프로젝트에서는 postgresql을 사용하였으므로 postgresql 라이브러리 등록 2. application.properties DB설정 spring.datasource.url=jdbc:postgresql://localhost:5432/springdata spring.datasource.username=user spring.datasource.password=pass spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.jdbc.lob.non_contextual_..
2020.05.05 -
[Spring Data JPA] Repository 생성
1. JPA Repository 생성 JPA를 사용하여 Repository를 만들 때는 JpaRepository 를 상속받는 Interface를 만들어 주기만 하면 된다. import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; public interface SchoolRepository extends JpaRepository { } 이렇게 인터페이스를 만들어주고, 주입만 해주면 기본적인 crud 기능을 모두 사용할 수있다. @Autowired SchoolRepository school..
2019.10.08 -
[Spring Data JPA] Cascade
ManyToOne 또는 OneToMany에 옵션으로 설정 가능. 상태변화를 전파하는 옵션이다. 1. 생성 1) cascade 옵션 설정 @Entity public class School { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "school", cascade = CascadeType.ALL) private Set students = new HashSet(); } 2) 실행 테스트 @Component @Transactional public class JpaRunner implements ApplicationRunner { @PersistenceContext EntityManager entityManag..
2019.10.05 -
[Spring Data JPA] annotation(어노테이션)
@Entity(name = 기본은 클래스명) 테이블과 매핑되는 객체라는 선언. name 생략하고 @Entity 만 쓸 경우 기본은 클래스명과 동일 @Table(name = 기본은 Entity명) 엔티티와 매핑될 테이블의 이름을 설정할 수 있음. name 생략하고 @Table 만 쓸 경우 기본은 Entity명과 동일 @Id 기본키 (primary key) @GeneratedValue 값이 자동으로 생성되도록 함. (시퀀스나 auto increment 사용하듯이) @Temporal(TemporalType.TIMESTAMP) Date타입의 설정. TemporalType.TIMESTAMP, TemporalType.TIME 등으로 설정 가능 @Transient DB에 매핑하지 않고, 컬럼으로 등록하지도 않는다. ..
2019.09.29