SQL 중심적인 개발의 문제점
영속성 컨텍스트(JPA)란?
영속성 컨텍스트의 변경내용을 데이터베이스에 반영 플러시 발생 (transaction commit 됐을때 자동적으로 발생)변경 감지수정된 엔티티 쓰기 지연 SQL 저장소에 등록쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리)영속성 컨텍스트
기본 매핑
다대다 N:M관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능@ManyToMany 사용@JoiniTable로 연결 테이블 지정다대다 매
상속관계 매핑관계형 데이터베이스는 상속 관계X(객체는 상속관계가 있음)슈퍼타입 서브 타입 관계라는 모델링 기법이 객체 상속과 유사상속 관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법각각
@MappedSuperclass공통 매핑 정보가 필요할 때 사용(id, name)상속관계 매핑X엔티티X, 테이블과 매핑X부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공조회, 검색 불가(em.find(BaseEntity)불가)직접 생성해서 사용할 일이 없으므로
프록시 기초em.find() vs em.getReference()em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회프록시 특징실제 클래스를 상속 받아서 만들어짐실제
Controller 단에서 클라이언트에서 URL에 파라메터를 같이 전달하는 경우Type 1 => http://127.0.0.1?index=1&page=2Type 2 => http://127.0.0.1/index/1Type 1의 경우 파라미터의 값과 이
영속성 컨텍스트가 더는 관리하지 않는 엔티티임의로 만들어낸 엔티티도 기존 식별자를 가지고 있으면 준영속 엔티티로 볼 수 있다.준영속 엔티티의 문제: JPA가 관리를 안함, 변경을 해도 update가 안됨❓❓그렇다면 어떻게 준영속 엔티티를 관리할 수 있을까??변경 감지
3월 14일부터 시작한 실전 스프링 부트와 JPA 활용1 을 드디어 완강 했다!스프링 입문, MVC 등 기본기에 대한 이해 없이 JPA를 수강한 후 바로 실전편을 들어서 스프링 기본에 대한 부분 검색하면서 들었다. 처음에 어려울까봐 살짝 걱정을 하기는 했지만 김영한님께
오랜만에 다시 공부하는 jpa 스프링 부트 계속 강의를 들었다 말았다 해서 이번 방학에 처음부터 다시 빠르고 깊이 있게 들으려고 한다. 작년 1월달에 강의를 구매한 것 같은데 아직도 제대로 끝낸 강의가 없다는게 슬프고 게으른 나 반성한다. 하루에 최소 5시간씩 공부하
JPA는 특정 데이터베이스에 종속되지 않는다.JPA 구동 방식1\. 설정 정보 조회2\. EntityManagerFactory 생성3\. EntityManager들을 생성모드 데이터 변경은 Transaction 안에서 진행엔티티 매니저 팩토리: 하나만 생성해서 애플리케
임베디드 타입과 MappedSuperclass의 차이가 무엇이며, 각각 언제 사용해야 좋을까 의문이 들었다. @MappedSuperclass 공통 매핑 정보가 필요할 때 사용 된다 상속 관계 매핑 X 엔티티 X, 테이블과 매핑 X 부모 클래스를 상속 받는 자식 클래스
참고https://wjddntjr555w.tistory.com/50UserDB를 가지고 여러가지 비즈니스 로직을 실행할 때가 많다.ex) 로그인, 회원가입, 회원이 갖고 있는 포인트 조회, 변경 등등계층 간의 데이터 교환을 목적으로 한 객체입니다.로직을 갖고
Lombok을 사용하여 Getter, Setter로 쉽게 조회, 변경을 할 수 있다.하지만 Setter 사용을 남발한다면 문제가 발생할 수 있다. 그렇다면 왜 사용하면 안될까?Setter 메소드를 사용하면 값을 변경한 의도를 파악하기 어렵다.위 코드는 Member의 정
@Id사용을 위해 import org.springframework.data.annotation.Id; 를 했는데 에러가 떴다. has no identifier (every '@Entity' class must declare or inherit at least one
아무것도 모르고 뻘짓을 시작하다..프론트(react)와 백엔드(springboot) 사이 각각의 역할을 정리하는 하는 것의 중요성을 느꼈다.이 부분이 서버에서 해줘야할 부분이다.클라이언트로부터 인가 코드를 받는다.받은 인가 코드로 카카오 서버에 엑세스 토큰을 요청한다.