LostCatBox

LostCatBox

내 생각을 자유롭게 만들 때까지

(JPA) JPA-Basic-CH06(고급매핑- 상속관계 매핑)
상속관계 매핑RDB는 물리모델 , 객체의 상속관계는 논리모델JPA는 어떤 물리모델을 갖던, 객체로의 논리모델 지원한다. 특징 관계형 데이터베이스는 상속 관계 X RDB에는 대신 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 객체에서는 상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 조인 전략 Insert 할때는 2번이 일어나며, 조회를 할때는 pk, fk값으로 조인해서 가져오고, DTYPE을 정해서 해당하는 table과의 조인을한다. 주요 에너테이션 @Inheritance(strate...
(Issue) ResponseBodyAdvice에서 ClassCastException 발생
ResponseBodyAdvice에서 ClassCastException 발생String 클래스를 반환하는 컨트롤러의 매서드에서 문제 발생 이슈 상황기대 Controller(@RestController 포함)에서 응답 return 시, ResponseBodyAdvice의 구현체 코드 중 beforeBodyWrite() 실행되어, JsonResponse 객체를 Json형식으로 유저에게 응답 현실 아래 조건에서 java.lang.ClassCastException 에러발생 ResponseBodyAdvice의 구현체 코드 중 일부 ...
(JPA) JPA-Basic-CH05(다양한 연관관계 매핑)
연관관계 시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성설계시 DB기준으로 어떻게 할지 생각해보고, 외래키를 두자, 외래키는 N 쪽에 두자!햇갈린다면, 생각하고있던 서로의 위치를 바꿔도 적절한지 확인(다대일 -> 일대다) 다대일 @ManyToOne 일대다 @OneToMany 일대일 @OneToOne 다대다 @ManyToMany 실무에서 안씀 단방향, 양방향 테이블 외래 키 하나로 양쪽조인 가능 방향이라는 개념없음 객체 참조용 필드가 있는 쪽만 참조가능 한쪽만 참조하면 단방향 양쪽이 서로 참조...
(JPA) JPA-Basic-CH04 (연관관계 매핑 기초)
목표foreignkey를 직접쓰는게 아니라 객체 지향적으로!! 짜기 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 용어이해 방향(Direction): 단방향, 양방향 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인 이 필요 RDB 기준 설계의 문제점 객체 지향적으로 안되어있기때문에, 각 fk를 알고, 직접 find해와야함 123456789101112131415&#x...
(JPA) JPA-Basic-CH03 (엔티티 매핑)
엔티티 매핑엔티티 매핑 소개 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne,@JoinColumn @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라고 한다. 주의 기본 생성자 필수(파라미터 없는 protected 이상의 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Table @Table은 엔티티와 매핑할 테이블 지정 DB에서 활용할...
(JPA) JPA 기본편 CH02 (JPA 영속성 컨텍스트)
JPA에서 가장 중요한 것 객체와 관계형 데이터베이스 매핑하기
 영속성 컨텍스트 개념엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity) persist는 DB에 저장하는것이 아니라 영속성 컨텍스트에 저장한다는 의미이다 영속성 컨텍스트는 논리적인 개념 엔티티 매니저를 통해서 영속성 컨텍스트에 접근함 엔티티의 생명주기 비영속 (new/transient)
 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 (managed)
 영속...
(JPA) JPA 기본편 CH01 (JPA 시작)
왜?sql, jpql, mybatis 등등을 활용할때는 개발자가 결국 직접 sql을 쓰는것과같다. 하지만 JPA는 객체지향으로 쿼리를 만들고 개발할수있다. 출처김영한 JPA 기본편 목표객체와 테이블 설계 매핑 기본 키와 외래키 1:N, N:1, 1:1, N:M 매핑 실무 노하우 + 성능까지 고려 복잡한 시스템도 JPA로 설계 가능 JPA 내부 동작 방식 이해 JPA의 내부 동작 방식을 이해하지 못함 JPA가 어떤 SQL을 만들어 내는지 이해 JPA가 언제 SQL을 실행하는지 이해 JPA 기본SQL 단점 객체에 필드 추가시 ...
DataSource, QueryDSL이란?
왜?회사에서 hikari 라는 datasource 툴을 볼수있엇고, querydsl로 해당 프로젝트가 짜있는것을 보고, 왜 쓴걸까? 라는 의문점에 찾아본다 참조Spring DataSource QueryDSL JPQL MyBatis->JPA Spring DataSource데이터 베이스에 테이터를 넣고, 데이터를 읽어오기 위해서는 먼저 데이터베이스에 연결되어야한다. 하지만, 이부분은 spring이 application.yml에 있는 메타정보를 등록하면 구성해주므로, 데이터베이스에 어떤 과정을 거쳐 연결되는지 알수없다. 123...
(ETC) 디자인 패턴에 대해서 CH2 (구조 디자인 패턴에 대해)
구조 패턴어댑터 패턴의도어댑터는 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴입니다. 어댑터는 호출을 받으면 들어오는 XML 데이터를 JSON 구조로 변환한 후 해당 호출을 래핑된 분석 객체의 적절한 메서드들에 전달합니다. 객체 어댑터이 구현은 객체 합성 원칙을 사용합니다. 어댑터는 한 객체의 인터페이스를 구현하고 다른 객체는 래핑합니다. 클라이언트는 프로그램의 기존 비즈니스 로직을 포함하는 클래스입니다. 클라이언트 인터페이스는 다른 클래스들이 클라이언트 코드와 공동 작업할 수 있도록...
avatar
lostcatbox
내 생각을 자유롭게 만들 때까지
FRIENDS
friendA friendB