(JPA)값 타입과 불변객체
값 타입과 불변객체 값 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험하다. side effect 가 발생 할 가능성이 높아진다. 값 타입 복사 값 타입의 실제 인스턴스인 값을 공유하는것은 위험하다. 인스턴스 값을 복사해서 사용하는 것이 안전하다. 객체 타입의 한계 ...
값 타입과 불변객체 값 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험하다. side effect 가 발생 할 가능성이 높아진다. 값 타입 복사 값 타입의 실제 인스턴스인 값을 공유하는것은 위험하다. 인스턴스 값을 복사해서 사용하는 것이 안전하다. 객체 타입의 한계 ...
JPQL 프로젝션 프로젝션 SELECT 절에 조회할 대상을 지정하는 것 DESTINCT 로 중복 제거 가능하다. 대상: Entity, EmbeddedType, ScalaType SELECT m FROM Member m // Entity 프로젝션 SELECT m.team FROM Member m // Entity 프로젝션 SELEC...
JPQL 조인 조인 종류 내부 조인 SELETE m FROM Member m [INNER] JOIN m.team t Team team = new Team(); team.setName("teamA"); em.persist(team); Member member = new Member(); member.setUsername("member");...
JPQL 기본문법 JPQL(Java Persistence Query Language)? JPQL 은 Entity 2022객체 대상으로 쿼리 한다. JPQL 은 특정 데이터베이스 SQL 에 의존적이지 않다. JPQL 은 결국 SQL 로 변환되어 실행된다. JPQL 문법 select_문 :: = select_절 from_...
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 ...