스프링/6. 스프링 DB-2

24. ORM

sdafdq 2023. 10. 10. 09:34

지금 시대는 객체를

관계형 DB에 관리

 

관계형 DB는 sql만 알아들으므로 SQL 의존적인 개발을 피하기 어려움

 

개발자가 SQL 매퍼 역할을 하는 중

 

 

관계형 DB는 상속관계도 없음.

비슷한 게 있긴 하지만 (Super타입, sub타입)

복잡함.

 

 

보통 클래스 자체를 DB에 맞춰 정의함. 도메인 말하는 듯.

 

그리고 만약 예를 들어 Member 객체가 Order 객체를 가지고 있다고 생각해 보셈.

클래스로써는 상상이 가지만 DB에서는 어떻게 구현할거임?

 

이럴 경우 보통 Order의 Id를 가지고 있다가 따로 Order 테이블에서 JOIN 시킴.

JOIN : sql 명령어 중 하나. 둘 이상의 테이블을 연결해 데이터를 검색하는 방법.

적어도 하나의 컬럼을 공유하고 있어야 하며, 이 컬럼을 PK또는 FK값으로 사용.

 

근데 또 Order가 객체로 Delivery라는 배송형식에 대한 객체를 가지고 있다면.

 

sql 쿼리문이 엄청 복잡해 지는거임.

 

member가 team_id를 갖고 있고, team이라는 db와 조인

 

 

 

 

그렇다고 Member만 불러올지, Member와 함께 Team을 불러올 지, 이것들을 함수로 나눠도..

 

 

DAO는 Repository라고 생각하셈.

 

 

그래서 생각하게 된게

우리가 객체를 리스트같은 컬렉션에 넣듯이 DB에 넣을 순 없을까?

이게 ORM이고

그 중 하나가 JPA임.

'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글

26. JPA 적용  (0) 2023.10.11
25. ORM -JPA  (0) 2023.10.10
23. JPA  (0) 2023.10.10
22. 마이바티스 기능들.  (0) 2023.10.10
21. 마이바티스 적용2  (0) 2023.10.10