본문 바로가기

JPA38

Jpa One to Many Non primary key 로 연결해서 조회 Jpa One to Many Non primary key 로 연결해서 조회 // A : B = 1 : n 이라고 가정 // A 의 testKey 와 B 의 testKey 를 조인하고자 함. 서로 non PK 임. @Entity public class A implements Serializable { private String testKey; @OneToMany @JoinColumn(name = "testKey", referencedColumnName = "testKey") private List b = new ArrayList(); } @Entity public class B { private String testKey; } 실행 도중 에러 spring test 중 jpa no session proxy .. 2021. 2. 5.
jpa 단방향, 양방향 개념 정리 jpa 단방향, 양방향 개념 정리 단방향 A 와 B 가 1:n 관계이고, A —> B 단방향 이라면 A 에서 B 는 접근 가능. B 에서 A 는 접근 X source @Entity public class A { List b = xxx; } 양방향 A 와 B 가 1:n 관계이고, A —> B , B —> A. 둘 다 접근 가능 source @Entity public class A { List b = xxx; } @Entity public class B { A a; } 단방향, 양방향 어떤 것을 쓰는게 좋은가? 양방향은 정말 필요할 경우 사용하기. 그 외에는 단방향을 쓰는게 좋을 것 같음. 양방향을 주는 순간 선택의 폭이 넓어지고 신경 써야 할 것이 많이 생김. 그렇기에 필요한 경우만 사용하고 단방향으로 사.. 2021. 1. 13.
jpa 준영속 상태 및 merge vs 변경감지 비교 jpa 준영속 상태 개념 영속성 컨텍스트가 더 이상 관리하지 않는 엔티티를 준영속 상태라고 함. 즉, database 에 이미 한 번 갔다 온다음, 영속성 콘텍스트에서 빠진 Entity 를 준영속 상태라고 함. -- 여기서 member 는 이미 1이라는 pk 로 저장돼있다고 가정하고 -- api 를 통해 다시 한 번 들어오면, Member member = new Member() 는 준영속 상태이다. -- 영속 @PostMapping(xxx) public xxx updateMember(xxx) { Member member = new Member(); member.setId(1); } 준영속 엔티티를 수정하는 방법 1. find 로 찾은 다음에 데이터를 변경해줌 (best 방법) 아래와 같이 데이터를 수정하.. 2021. 1. 6.
JPA ENUMERATED 사용법 정리 JPA ENUMERATED 사용법 정리 아래와 같이 작성하고 생성하면 DB 에 A,B,C 로 저장이 됨. 주의할건 EnumType.ORDINAL 을 될 수 있으면 쓰지 않는게 좋음. 이건 0,1,2 이런 순으로 순서대로 값을 만들어 DB 에 저장하기에 중간에 코드 값이 추가되거나 줄어들면 코드 값이 꼬여버린다. @Entity public class Test { @Column @Enumerated(EnumType.STRING) private TestStatus testStatus; } public enum TestStatus { A,B,C } 2020. 12. 31.