본문 바로가기
728x90
반응형

Study/JPA17

[JPA] @MappedSuperclass @MappedSuperclass 객체의 입장에서 공통 매핑 정보가 필요할 때 사용한다. id, name은 객체의 입장에서 볼 때 계속 나온다. 이렇게 공통 매핑 정보가 필요할 때, 부모 클래스에 선언하고 속성만 상속 받아서 사용하고 싶을 때 @MappedSuperclass를 사용한다. DB 테이블과는 상관없다. 아래에 보면 DB는 매핑 정보 다 따로 쓰고 있다. 객체의 입장이다. 코드로 이해하기 생성자, 생성시간, 수정자, 수정시간을 모든 엔티티에 공통으로 가져가야 하는 상황에서 아래와 같이 BaseEntity를 정의해서 활용할 수 있다. BaseEntity.java 매핑정보만 상속받는 Superclass라는 의미의 @MappedSuperclass 어노테이션 선언 @Getter @Setter @Mappe.. 2022. 4. 19.
[DAO] DAO, DTO, Entity Class의 차이 DAO(Data Access Object) 란? repository package 실제로 DB에 접근하는 객체이다. Persistence Layer(DB에 data를 CRUD하는 계층)이다. Service와 DB를 연결하는 고리의 역할을 한다. SQL를 사용(개발자가 직접 코딩)하여 DB에 접근한 후 적절한 CRUD API를 제공한다. JPA 대부분의 기본적인 CRUD method를 제공하고 있다. extends JpaRepository 예시(JPA 사용 시) public interface QuestionRepository extends CrudRepository { } DTO(Data Transfer Object) 란? dto package 계층간 데이터 교환을 위한 객체(Java Beans)이다. D.. 2022. 4. 11.
[JPA] 벌크연산 벌크연산 insert, update, delete할때 단건이 아닌 다건으로 한번에 처리하는 쿼리 JPA에서 단건 UPDATE같은 경우에는 Dirty Checking을 통해서 수행 주의점 벌크 연산 쿼리는 에ㅐㄴ티티 매니저가 영속성 컨텍스트에 변경된 내용을 업데이트 하지 않고 바로 데이터에 스스로 보내진다 벌크연산 후에 실제 데이터베이스와 영속성 컨텍스트의 엔티티 정복 다를수 있다. 벌크연산 후에는 flush()와 clear()를 해줘서 이후의 로직에 대해 다시 영속성 상태가 되도록 해야한다. 스프링 데이터 JPA 벌크연산 @Modifying INSERT, UPDATE, DELETE에 모두 적용되며 없을 경우 SELECT로 인식하기 때문에 에러가 발생 스프링 데이터 JPA에서는 flushAutomatica.. 2022. 3. 30.
[JPA] Spring JPA CascadeType 종류 JPA Cascade Types Spring JPA CascadeType 종류 javax.persistence.CascadeType JPA Cascade Type ALL PERSIST MERGE REMOVE REFRESH DETACH CascadeType.ALL 상위 엔터티에서 하위 엔터티로 모든 작업을 전파 @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String name; @OneToMany(mappedBy = "person", cascade = CascadeType.ALL) private List addresses; } @Entity public class.. 2022. 3. 28.
728x90
반응형