ORM

Backend/JPA

[JPA] 상속관계 매핑, @MappedSuperclass

🤔 상속관계 매핑? 관계형 데이터베이스는 상속관계라는 개념이 없다. 하지만 슈퍼타입과 서브타입 관계라는 모델링 기법이 객체의 상속과 유사하기 때문에 이점을 이용하여 상속관계 매핑을 하고있다. (객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑) DB에서 슈퍼타입과 서브타입의 논리모델을 디자인 했을때 실제 물리 모델로 구현하는 전략은 3가지가 있다. ✔ 조인전략(JOINED) 가장 정규화된 방법으로 각테이블을 join하는 방식으로 데이터 를 저장하게되며 데이터가 정규화 되어 저장되기 때문에 중복되는 데이터(name, price)를 줄일 수 있고, 객체의 관계와 가장 유사하다. @Inheritance(strategy = InheritanceType.JOINED)과 객체의 상속(extends)을 사용하..

Backend/JPA

[JPA] 객체 지향 모델링과 양방향,단방향 연관관계 매핑

🤔 기존의 문제점 객체를 테이블에 맞추어 모델링 try{ //팀 등록 Team team = new Team(); team.setName("TeamA"); em.persist(team); //맴버 등록 Member member = new Member(); member.setUsername("member1"); member.setTeamId(team.getId()); // **외래키 식별자를 직접 다루고 있다.** em.persist(member); //조회 Member findMember = em.find(Member.class, member.getId()); Long findTeamId = findMember.getTeamId(); // 맴버객체에 저장된 팀아이디 즉 외래키를 찾는다 Team findTe..

Backend/JPA

[JPA] JPA 가장 중요한 2가지 - 엔티티 매핑

🤔 엔티티 매핑? 🔎 Entity 직역하면 '실체', '독립체' 라는 뜻으로 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 '어떤 것(Thing)'이라고 말할 수 있다. (DB에 저장되거나 가져와지는 객체라고 생각하면 편할것 같습니다. ) 🔎 Mapping 일반적인 의미로는 하나의 요소를 다른 요소와 대응시키거나 연결하는 프로세스를 말합니다. 📌 Entity(객체)와 관계형 데이터베이스(테이블, 컬럼, 관계 등)를 Mapping 즉 서로 대응시켜 연결하는 과정으로 보통 어노테이션(Annotation)을 사용하여 이루어지며 Mapping을 통해 JPA는 객체와 데이터베이스 간의 변환을 자동으로 처리할 수 있게 됩니다. ✔ Mapping 구분 Annotation 객체와 테이블 매핑 @Entity, @..

Backend/JPA

[JPA] SQL 중심적 개발의 문제점과 JPA를 사용해야 하는 이유

🤔Why ? 국비학원 커리큘럼을 따라 공부하며 계속 드는 생각이 있었다. 💡 이거 너무 불편한데? 💡 더 편한 방법은 없을까? 📌 첫 프로젝트 JDBC api를 사용해서 query문을 정확하게 한땀한땀 입력하여 처리했다 📌 두번째 프로젝트 sql Mapper(MyBatis)를 사용하여 개발 코드는 줄었지만 query문에 집중되어있고, 생산성이 떨어진다는 점은 같았다. 프로젝트를 진행하며 많은부분을 맡게되어 다양한 기능을 구현하다보니 하나의 기능을 수행하기 위해 무언가 절차가 많다는 생각이 들었다. 우연히 JPA소개 강좌를 듣게되었고 이렇게 편하게? 이렇게 빨리? 개발을 할 수 있다는 설레임에 바로 강의를 수강하게되었다. 💻자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한님) ✔ SQL 중심적인 개발..

장용석
'ORM' 태그의 글 목록