동적 쿼리를 이용해서 엔티티를 모르는 DB에 접근해 결과를 뽑아낼 수 있을까요?
안녕하세요 스프링 기초부터 활용편까지 유익하게 듣고 있습니다.
강의를 수강하면서 토이 프로젝트를 만들어보고 싶은데, 동적 쿼리나 JPA에 익숙하지 않다보니 궁금한게 많습니다.
그래서 강의내용과 직접적인 연관이 없음에도 강사님이 전문가이시니 이렇게 질문 드립니다.
활용편에서는 DB와 스프링 프로젝트를 연결하고, 스프링에 엔티티를 만들고, 그 엔티티를 기반으로 DB에 테이블이 생성되고 연결되는 구조로 어플리케이션이 만들어졌습니다.
그런데 DB에 테이블이 이미 생성되어 있거나 테이블 구조가 바뀔수 있다고 할 때(테이블 Column이 바뀌거나, 테이블이 추가되는 경우 등)에도 JPA 개념으로 테이블을 객체로 가져와 결과를 뽑아내거나 join을 하거나 하는게 가능할까요?
엔티티의 멤버변수를 기반으로 DB 테이블 column을 만들다보니 스프링에 엔티티가 정의되어 있지 않거나 내용이 달라지면 안되겠지만, 혹시 방법이 있을까요?
답변 2
1
안녕하세요. 박상원님^^ 좋은 질문입니다.
DB에 테이블이 이미 생성되어 있거나 테이블 구조가 바뀌면, JPA의 엔티티도 해당 테이블에 맞추어서 매핑을 변경해야 합니다.
예를 들어서 DB에 컬럼을 추가해야 하면 먼저 DB에 컬럼을 추가해둡니다. JPA는 해당 컬럼을 사용하지 않기 때문에 컬럼을 추가한 시점에는 아무런 문제가 없습니다. 이후 엔티티에도 해당 컬럼을 추가하고 애플리케이션을 다시 배포해야 합니다.
그리고 이런 작업들은 매우 조심히 이루어져야 합니다. 잘못하면 바로 장애로 이어질 수 있습니다^^!
(역시 DB 데이터 마이그레이션 하는게 세상에서 가장 힘든 작업입니다. ㅎㅎ)
감사합니다^^
sdk 설정 오류
0
48
2
오탈자 - @Transactional
0
53
1
src/test/resources 테스트 경로 문제
0
49
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
62
1
MemberRepositoryTest 실행오류
0
77
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
183
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
137
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
50
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
71
1
기본 생성자
0
59
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
100
1
멤버서비스테스트 부분에서 막힙니다.
0
163
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
115
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
117
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
111
1
24분 27초 연관관계 편의 메서드 위치
0
112
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
107
2
빌드 툴, Gradle
0
57
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
73
2
Repository에서 EntityManager 주입 방식 차이
0
87
1
롬복과 사용자 정의 setter 메서드
0
70
1
주문 목록 조회 fetch join 질문드립니다
0
80
1
dirty checking 질문드립니다.
0
80
1
동시성 관련 질문입니다
0
72
1





