(JPA)JPA의 다양한 쿼리 사용 방법
JPA의 다양한 쿼리 사용 방법 JPQL JPA 를 사용하게 되면 Entity 객체를 중심으로 개발하게 되는데, 검색 쿼리를 어떻게 처리해야할까? 검색을 할 때도 테이블이 아닌 Entity 객체를 대상으로 검색해야 한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능에 가깝다. 애플리케이션이...
JPA의 다양한 쿼리 사용 방법 JPQL JPA 를 사용하게 되면 Entity 객체를 중심으로 개발하게 되는데, 검색 쿼리를 어떻게 처리해야할까? 검색을 할 때도 테이블이 아닌 Entity 객체를 대상으로 검색해야 한다. 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능에 가깝다. 애플리케이션이...
영속성 전이와 고아객체 영속성 전이(CASCADE) 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을때 사용한다. 엔티티 생성 일대다, 다대일 양방향 관계를 가지는 엔티티를 생성 @Entity public class Parent { @Id @GeneratedValue private Lo...
[백준] 1541: 잃어버린 괄호(JAVA) 문제 링크 1541번: 잃어버린 괄호 예제 1번 예제 입력: 55-50+40 출력: -35 55-(50+40) 과 같이 괄호를 쳐주면 예제에서 주어지는 식의 값을 최소로 만들 수 있다. 2번 예제 입력: 10+20+30+40 출력: 100 - 연산자가 존재하지 않...
값 타입 컬렉션 값 타입 컬렉션? 값 타입을 하나 이상 저장할 때 사용한다. @ElementCollection, @CollectionTable 어노테이션을 사용 테이터베이스는 컬렉션을 같은 테이블에 저장할 수 없어, 컬렉션 저장을 위한 별도의 테이블이 필요하다. 값 타입 컬렉션 예제 예제 엔티티 생성 @Entity public cl...
임베디드 타입 임베디드 타입? 새로운 값 타입을 직접 정의 할 수 있다. JPA는 임베디드 타입이라 한다. 주로 기본 값 타입을 모아서 만들어서 복합 값 타입 이라고도 한다. int, String과 같은 값 타입 임베디드 타입 사용법 @Embeddable: 값 타입을 정의하는 곳에 표시 @Embedded: 값 타입을 사용...
즉시 로딩과 지연 로딩 지연 로딩 LAZY @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne(fetch ...
프록시 프록시 기초 em.find() vs em.getReference() em.find(): 데이터베이스를 통해서 실제 엔티티 객체를 조회 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 프록시 특징 실제 클래스를 상속 받아서 만들어진다. 실제 클래스와 겉 모양이 같다. 사...
상속관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 슈퍼타입, 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다. 상속관계 매핑: 객체의 상속 구조와 DB의 슈퍼타입, 서브타입 관계를 매핑 슈퍼, 서브타입 논리 모델을 물리 모델로 구현 각각 테이블로 변환 -> 조인 전략 통합 테이블로 변환 -> 단일 테이블...
연관관계 매핑(다대다) 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다. 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야한다. 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계가 가능하다. 다대다 객체 연관관계(단방향) Product @Entity public class Product { @I...
Web Socket Web Socket이란? 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다. Client <–Message–> Server Web Socket의 특징 양방향 통신(Full-Duplex) 데이터 송수신을 동시에 처리 할 수 있는 통신 방법 클라이언트와 서버가 서로에게 원할 때 데이...