본문 바로가기

JPA38

jpa embedded, cascade 정리 jpa embedded, cascade 정리 Embedded 내장타입이며, 쉽게 자바로 얘기하면 객체 안의 객체라고 이해하면 됨. Embeddable 은 내장 객체에 선언. Embedded 는 내장 객체를 사용하는 곳에 선언. 재사용성이 좋고, 응집성이 좋겠지. @Embeddable public class Address { private String zipCode; private String addr; } @Entity public class Member { @Embedded private Address address; } cascade cascade 는 연관관계의 데이터 변화를 같이 DB 에 반영하겠다는 것. CascadeType.ALL 옵션을 보통 쓰고, persist, remove 와 같은 옵션을 .. 2020. 12. 27.
jpa 외래키 연관관계 맵핑 주인은 외래키가 존재하는 곳으로 설정 jpa 외래키 연관관계 맵핑 주인은 외래키가 존재하는 곳으로 설정 외래키 연관관계 맵핑 주인은 외래키가 있는 곳으로 설정 회원과 주문을 기준으로 1명의 회원은 여러 번의 주문을 할 수 있음. 일대다 관계임. 주문 테이블에 FK 가 있을것이고, 이 것을 연관관계 맵핑 주인으로 설정하는 것이 기본 원칙 만약 반대로 맵핑 주인을 설정한다면 주문 테이블에 위해 회원 테이블이 변경될 수 있기에 여러 번 호출. 이는 성능 문제를 발생시킴. 주문 테이블에 맵핑 주인이 있으면 1번만 호출하면 전부 변경할 수 있는데. 주인인 쪽은 읽기,쓰기가 가능하고. 주인이 아닌 쪽은 읽기만 가능. 회원은 읽기만. 주문은 읽기, 쓰기 가 소스로 설명하면 다음과 같음. // 회원 테이블, 주문 테이블이 있음. // 둘은 일대다 관계이고.. 2020. 12. 22.
Jpa querydsl selectFrom 간단한 예제 Jpa querydsl selectFrom 간단한 예제 아래와 같이 selectFrom 을 해주면 entity xxxTest 에 맵핑되고. select, from 따로 해줘도 됨. select 할 것이 엔티티 일부만이라면. private final JPAQueryFactory queryFactory; @Override public List findxxx( ... ) { return queryFactory.selectFrom(test) xxx xxx .fetch() ; } 2020. 12. 5.
spring data jpa querydsl property not found 에러 spring data jpa querydsl property not found 에러 상황 : xxxRepository 에서 기본적으로 제공하는 쿼리로만 로직을 짜기가 어려워서 querydsl impl 할일이 있었음. 근데 custom query 에서 계속 property not found 라고 나옴. 왜 그런가 하고 검색하다보니 xxxRepository, xxxRepositoryCustom, xxxRepositoryImpl 이름을 맞춰줘야 함. 안그러면 못찾음. xxxRepository123Custom 이런식으로 쓰면 위 에러가 남. 해결방안 : 아래 처럼 이름을 지어주자. public interface xxxRepository extends JpaRepository, xxxCustomRepository.. 2020. 12. 4.