
다음은 JPA를 활용한 예시이다.
//기존 엔티티 상태 바꾸는 방법(메서드 호출을 통해 상태 변경)
@PersistenceContext
EntityManager em;
public void join(){
Member member = new Member(1L, "이름");
em.persist(member);
//기본 CRUD 메서드를 사용하기 위해 JpaRepository 상속
public interface MemberRepository extends JpaRepository<Member, Long>{
}
이와 같이, JPA를 사용하면 기본적인 CRUD작업을 간단히 할 수 있다. JpaRepository 인터페이스를 자신이 만든 인터페이스에서 상속받고, 제네릭에는 관리할 <엔티티, 엔티티 기본키의 타입>을 입력하면 기본 메서드를 사용할 수 있다.
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Getter
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false)
private Long id;
@Column(name = "name", nullable = false )
private String name;
}
<name 파라미터로 Article 클래스와 member_list 테이블 매핑 예시>
// 'member_list'라는 이름을 가진 테이블과 매핑
@Entity(name = "member_list")
public clas Article {
}
<기본키 생성 방식>
- Auto: 선택한 데이터베이스의 방언에 따라 방식을 자동으로 선택.
- IDENTITY : 기본 키 생성을 데이터베이스에 위임
- SEQUENCE: 데이터베이스 시퀀스를 사용하여 기본키를 할당. 주로 오라클에서 사용
- TABLE: 키 생성 테이블에 사용
<@Column 애너테이선 속성>
- name: 필드와 매핑할 컬럼 이름, 설정하지 않으면 필드 이름으로 지정
- nullable: 컬럼의 null 허용 여부, 설정하지 않으면 true
- unique: 컬럼의 유일값 여부 지정. 설정하지 않으면 false
- columnDefinition : 컬럼 정보 설정. default를 사용할 수 있다.