이번에 첨써보는데 예약차량 테이블을 조회해서 list<entity> 형태로 반환하는 메서드가 있음.
Entity 안에 visit status 라는 컬럼값을 코드값으로 관리하고있어서 common_code 테이블에 있는 value를 코드값대신에 대체해서 list<entity> 형태 그대로 반환하고싶은데
이건 JPA 조인으로 해결이 어려운건가? 부트랑 mysql로 사용중임..
오전부터 했는데 안풀려서 푸념식으로 써봄..
10개의 댓글
무분별한 사용은 차단될 수 있습니다.
덕덕고
JPA와 Spring Boot를 사용하여 MySQL 데이터베이스에서 데이터를 조회할 때, 복잡한 조인과 엔티티의 변환을 처리하는 것은 꽤 일반적인 시나리오입니다. 여기서 설명하신 visit status 값이 common_code 테이블의 코드값으로 연결되어 있다면, JPA를 이용하여 이를 해결할 수 있는 몇 가지 방법이 있습니다.
방법 1: 엔티티에 @ManyToOne 또는 @OneToOne 매핑 사용하기
가장 간단한 방법 중 하나는 visit status 필드를 common_code 테이블에 대한 @ManyToOne 또는 @OneToOne 관계로 매핑하는 것입니다. 이 방법을 사용하면 JPA가 SQL 조인을 자동으로 처리하고, common_code 테이블에서 관련 값을 직접 참조할 수 있습니다.
예를 들어, Reservation 엔티티와 CommonCode 엔티티가 있다고 가정해보겠습니다.
java
Copy code
@Entity
public class Reservation {
@Id
private Long id;
@ManyToOne
@JoinColumn(name = "visit_status", referencedColumnName = "code")
private CommonCode visitStatus;
// 다른 필드들...
}
@Entity
public class CommonCode {
@Id
private String code;
private String value;
// 다른 필드들...
}
이 구조를 사용하면, Reservation 객체의 리스트를 조회할 때 visitStatus 필드에 자동으로 CommonCode 객체가 채워집니다. 이 객체에서 value 필드를 사용하여 실제 값을 얻을 수 있습니다.
덕덕고
GPT-4한테 한번 물어봐봄
모그리또
나도 물어봐서 똑같이 나오긴하는데.. 저 새끼 말대로하면 응답데이터에 common_code 의 entity자체를 같이 반환해 ㅋㅋㅋㅋ ㅠ
덕덕고
정확히 무엇을 하고 싶은지 질문 다듬어서 물어봐봐 생각보다 GPT-4 진짜 대답 잘함
모그리또
아 그러네 내가 질문을 정리 못했을수도있겠다 다시해볼게!
년째금똥중
복잡한건 querydsl 써여함..
모그리또
내부에서 정해진게 jpa랑 boot3.2에 맞춰서 나온 jdbcClient인데 jdbc하기 싫어서 이걸로 하는중이었으..ㅠ
년째금똥중
쿼리 어노테이션으로 쓰던가 해야하는데 난 그럴바엔 dsl씀...
년째 고민중
jpql 사용해서 dto로 반환하는 예제 한번 찾아보세요 원하는게 이거인것 같아요. 아니면 윗댓 처럼 QueryDSL 쓰거나
RhPlusMinus
Sql로 뽑을 수 있으면 웬만하면 jpa로도 되지 읺음?