동작 파라미터화란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 특징 : 리스트의 모든 요소에 대해서 ‘어떤 동작’을 수행할 수 있음 리스트 관련 작업을 끝낸 다음에 ‘어떤 다른 동작’을 수행할 수 있음 에러가 발생하면 ‘정해진 어떤 다른 동작’을 수행할 수 있음 ...
프록시
프록시 엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아니다. JPA는 이런 문제를 해결하려고 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데 이를 지연 로딩이라고 한다. 지연 로딩 기능을 사용하려면 실제 엔티티 객체 대신에 데이터베이스를 지연할 수 있는 가짜 객체가 필요한데 이를 프록시 객체라고 한...
고급 매핑
상속 관계 매핑 관계형 데이터베이스에는 객체지향 언어에서 다루는 상속이라는 개념이 없다. 슈퍼타입 서브타입 관계라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이...
연관관계 주요 내용 및 주의할점
단방향 연관관계 주의점 등록 주의점 public void tset(){ Team team=new Team("team","팀"); em.persist(team); Member member=new Member("member","회원"); member.setTeam(team); em.persist(member); } 반드...
연관관계 엔티티 매핑
엔티티 맵핑 @JoinColumn @JoinColumn은 외래 키를 매핑할 때 사용한다. 속성 기능 기본값 name 매핑할 외래 키 이름 필드명 +_+참조하는 테이블의 기본 키 컬럼명 referenced...
엔티티 매핑
엔티티 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. 테이블과 매핑할 클래스에 붙인다. 속성 기능 기본값 name JPA에서 사용할 엔티티 이름을 지정 설정값이 없으면 클래스 이름...
JPA 소개
JPA 개요 기존에는 JDBC API를 통해 직접 SQL문을 작성하였다. 비지니스 로직보다 SQL 과 JDBC API를 작성하는 데 더 많은 시간을 보냈다. Mybatis, JdbcTemplate 같은 Mapper를 이용하여 줄였지만 여전히 등록, 수정, 삭제, 조회 SQL문은 작성해야 한다. 패러다임의...
JPA 영속성 관리
영속성 컨텍스트란? 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 엔티티 메니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다. 엔티티의 생명주기 비영속 : 영속성 컨텍스...
JPA 시작하기
JPA 라이브러리 Maven 설정 <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.0.2.Final</version&g...
Security
Spring Security Spring 기반 애플리케이션을 위해 선언적 보안 기능을 제공하는 보안 프레임워크 Servlet Filter 및 AOP 기반 인증 관련 Architecture 설명 (로그인 인증) 사용자가 아래와 같은 방식으로 로그인을 요청을 했다고 가정을하자. { "username": "admin", ...