minlog
article thumbnail
[ JPA ] @Query ( 쿼리 커스텀 ) - Native Query
BackEnd/Security · JPA 2023. 3. 31. 16:22

@Query 쿼리 메서드의 커스텀 버전이라고 생각할 수 있다. 보통 쿼리 메서드 만으로 일반적인 기능들을 처리할 수 있다. 하지만 다음의 두가지 케이스에서 필요하다. 쿼리메서드의 문제점을 보완해줄 수 있다. 1. 쿼리메서드의 가독성 문제 1) 쿼리메서드의 이름이 길어지는 경우 ex) 카테고리 = null , 이름 =파라미터와 같은것 ,created_at 파라미터 값보다 크거나 같은것, updated_at 파라미터 값보다 크거나 같은 것을 조회 List findByCateqoryIsNullAndNameEqualsAndCreatedAtGreaterThanEqual(String name, LocalDateTime createAt,LocalDateTime updateAt); - 수정 된 소스 : JPQL 을 사..

article thumbnail
[ JPA ] Cascade ( 영속성 전의 ) - 고아제속성
BackEnd/Security · JPA 2023. 3. 31. 14:24

Cascade 영속성 전의 OneToOne, OnToMany, ManyToOne, ManyToMany 등의 연관관계에서 Cascade (*enum) 타입들을 설정할 수 있다. ( * enum : 어떤 값을 사용할수 있는지 예시를 볼수 있다.) @OneToOne, @OnToMany, @ManyToOne, @ManyToMany cascade = CascadeType.속성 defalut 기본값은 아무런 전의가 없는 것이다. PERSIST 생성시만 적용 . 객체가 생성될 때 연관관계에 있는 객체도 함께 생성. MERGE 업데이트시 연관관계가 있는 객체도 함께 수정. REMOVE ⭐ 삭제 시 연관관계가 있는 하위 객체도 함께 삭제된다. (많이 사용하지만 주의해야하는 속성 - 고아제속성 제거와 함께 확인) REFR..

article thumbnail
[ Spring ] 게시판 페이징 VO 요소
BackEnd/Spring Boot 2023. 3. 30. 15:08

페이징 처리에 필요한 요소 1. 페이지 번호 (현제 보고 있는 페이지가 몇번째 페이지인지) 2. 한 페이지에 몇 개의 개시글을 보여줄 것인지 📑 Criteria.java (VO) @Data public class Criteria { private int page; //현제 페이지 번호 private int perPageNum; //한페이지에 보여줄 게시글의 수 // 생성자 : 처음 페이지 public Criteria(){ this.page = 1; this.perPageNum = 10; } // 현제 페이지의 게시글의 시작번호를 구할 수 있는 메서드 공식 - DB 에서 가져오는 index로 0부터 시작 //ex) 0~ /10~ / 20~ => MySQL limit 0, 10 // limit (시작),(갯..

article thumbnail
[ JPA ] Transaction
BackEnd/Security · JPA 2023. 3. 30. 02:19

Transaction Transaction 이란 DB 명령어들의 논리적인 묶음이다. Transaction 이라는 단어를 사용해서 여러가지의 쿼리들을 묶어서 사용하고 있다. ex) 하나의 Transaction : 물건 구매 => 결제 + 주문 1 . ACID 특성 A - 원자성 : 부분적인 성공을 허용하지 않는다. C - 일관성 : 데이터간의 정확성을 맞춘다. I - 독립성 : Transaction 내의 데이터 조작은 다른 Transaction 으로 부터 독립적인 속성을 가진다. D - 영구적 보관 : 데이터는 영구적으로 보관이 된다. 2. 사용방법 - @Transaction 어노테이션 을 사용할 수 있다. 1) DB저장 시점 save 가 되어도 DB에 저장이 되지 않는다. putBookAndAuthor ..

article thumbnail
[ JPA ] 영속성 컨텍스트와 Entity 생애주기
BackEnd/Security · JPA 2023. 3. 29. 23:26

1. 영속성 컨텍스트 > Entity 객체를 특별하게 감시하고 관리해주는 컨테이너 영속성 컨텐스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 영속성 캐쉬가 flash가 되서 DB에 반영 되는 시점 flash() 메서드를 명시적으로 호출하는 시점 트랜직션이 끝나서 해당 쿼리가 커밋되는 시점 복잡한 조회 조건의 jpk가 실행되는 시점 2. Entity 생명 주기 'Entity' 하나의 객체에는 4가지의 상태가 존재한다. 비영속상태(new/transient) , 영속상태 (managed), 준영속상태(det..