반응형 JPA/ORM 표준 JPA8 Atomic Query 작성 Atomic Query 정의 isolation에서 serializable을 사용해 where 절 조건과 index 자체에 lock을 걸지 않는 이상 write누락 이슈가 발생합니다 Atomic Query는 Table내부 Data를 update하는 작업에서 기존 데이터를 이용해서 변경하는 것을 의미 합니다 예시 일반 update query update from food set number_of_likes = 10 # 기존 number_of_likes : 9 where food_id = 15; Atomic Query update from food set number_of_likes = number_of_likes + 1 where food_id = 15; 위 결과는 동일하게 number_of_likes의 값.. 2022. 4. 28. Fetch Join 별칭 이슈 Fetch Join 의 한계 1. Fetch Join에 선언된 Entity에 대해서 별칭 불가 개요 JPA 표준 스펙에서는 Fetch Join 대상에 별칭이 없습니다 하지만 Hibernate에서 제공 Fetch Join에 별칭 선언시 이슈 이유: DB와 Entity 데이터의 일관성이 깨지는 이슈가 발생 code @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy =.. 2022. 1. 22. 06 연관관계 Mapping 종류 다중성과 연관관계 종류 N : 1 (다대일) @ManyToOne 1 : N (일대다) @OneToMany 1 : 1 (일대일) @OneToOne N : M (다대다) @ManyToMany 다대일 현재 객체는 하나의 객체를 참조할 수 있는 구조 1, 단방향 @Entity public class User { @Id @GeneratedValue @Column(name = "user_id") private Long id; private String username; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="team_id") // 연과관계의 주인이 되는 곳 private Team team; // .. codes } @Entity public class Team.. 2021. 8. 21. 05 연관관계 단방향 연관관계 객체 연관관계 와 table 관계 @Entity public class User { @Id @Column(name = "user_id") private Long id; private String username; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="team_id") private Team team; } @Entity public class Team { @Id @Column(name = "team_id") private Long id; private String name; } 객체 user는 team을 참조 할 수 있지만, team은 user를 참조할 수 없음 연관 관계 : 필드 접근 -> user.getTeam() 을 사용해서 접.. 2021. 7. 28. 이전 1 2 다음 반응형