본문 바로가기
반응형

Entity3

@Transient 어노테이션 JPA를 사용할 경우 Entity 를 사용하게 되는데 여기 내에 값들은 entity 와 매칭되는 테이블의 컬럼 하나하나로 이어진다. 그렇다는건 entity 클래스 내에는 테이블의 컬럼값들만 정의를 해야하는데, 만약 dto처럼 사용이 되는 entity의 경우 는 테이블 컬럼들 이외에 추가로 다른 변수들도 사용해야할수도 있다. 이럴 경우 @Transient 어노테이션을 사용한다. 예를들어 Member Entity 가 아래와 같이 있다. @Entity public class Member{ private String id; private String pw; private String pwconfirm; pwconfirm 항목은 비밀번호를 한번더 입력해주세요에 사용되는 컬럼이라서 비지니스로직에서 pw==pwcon.. 2023. 10. 2.
JPA 더티체킹(Dirty Checking) 이란? JPA에 대해서는 아래 참고 포스팅을 참고하면 확인해 볼 수 있다. 이번 포스팅에서 다뤄볼 내용은 더티체킹이라는 개념이며 직역으로는 변경상태 감지라고 느낄 수 있다. JPA에서는 값을 데이터베이스와 영속시키기 위한 몇가지 방법이 있는데 지금까지 다뤄왔던 방법은 merge 방법이다. findbyid 로 값을 가져온 뒤 영속을 시켜둔 상태에서 필요시마다 save 메서드를 날리면서 id 값 기준으로 동일한 값이 있는지 체킹하고 있다면 update 없다면 insert를 날려주는 방식이다. 하지만 그렇게 되면 매번 쿼리를 날릴때마다 select insert / select update를 날리게 된다. 불필요한 데이터베이스 체킹이 한번씩 더 날아간다. 이럴 경우를 방지하려면 더티체킹이 돼야 한다. 간단하게 말하면 .. 2022. 12. 3.
Entity, DTO, VO 차이 자바에서는 객체를 구현하는 다양한 방법이 있는데 대표적으로 Entity, DTO, VO 이렇게 세가지가 있다. 이들에 대해서 다뤄보려고 한다. 먼저 세가지를 분명하게 구분하는 이유는 다음과 같다. Entity와 DTO를 분리해서 관리해야 하는 이유는 DB Layer와 View Layer 사이의 역할을 분리 하기 위해서이다. DB Layer = Persistence Tier, View Layer = Presentation Tier Entity는 실제 테이블과 매핑되어 만일 변경되게 되면 여러 다른 Class에 영향을 끼치고, DTO는 View와 통신하며 자주 변경되므로 분리 해주어야 한다. 결국 DTO는 Domain Model 객체(Entity)를 그대로 두고 복사하여, 다양한 Presentation Lo.. 2022. 8. 18.
반응형