먹었으면 뇌를 쓰자
JPA 학습 내용을 정리한 로드맵 - 1.2 기초 지식 본문
1. JPA란 무엇인가
1.1 기본 CRUD
1.2 기초 지식
2. 연관관계
2.1 다대일 연관관계
2.2 일대다 연관관계
3. 상속
3.1 상속관계
3.2 CASCADE
4. SQL
4.1 JPQL
4.2 Querydsl
1.2 기초 지식
- 어노테이션
- 엔티티
<어노테이션>
어노테이션은 간단히 말해 '이름표'이다.
앞선 예제에서 다음과 같은 어노테이션이 사용되었다.
@Entity 해당 클래스가 영속성 컨텍스트에서 관리될 엔티티임을 나타낸다.
@Id 해당 필드가 식별자(pk)임을 나타낸다.
@Column 해당 필드의 세부 속성을 나타낸다. (name = 필드명, nullable = null값 허용 여부 등)
@Id 에서 식별자를 할당하는 방식에는 직접 할당과 자동 생성 두 가지가 있다.
예제에서는 직접 할당 방식을 사용하였다.
자동 생성 방식은 @Id 뒤에 @GeneratedValue 어노테이션을 붙인다.
자동 생성 방식에도 여러 종류가 있는데, 단순 식별자 기능에는 Identity를 쓰면 된다.
1. 식별자 직접 할당
<Movie.class>
@Id
private Long id;
<Main.class>
Movie movie = new Movie();
movie.setMovieId = (1L); // @Id 컬럼에 1L 라는 Id 값을 직접 작성했다.
movie.setMovieName = ("hobit");
em.persist(movie);
2. 식별자 자동 생성
<Movie.class>
@Id @GeneratedValue (strategy=GenerationType.IDENTITY) // 1L, 2L 등 Id 값이 자동 생성된다.
private Long id;
<Main.class>
Movie movie = new Movie();
movie.setMovieName = ("hobit"); // Name만 적어도 Id에 자동으로 1L가 할당된다.
em.persist(movie);
<엔티티>
JPA에서 엔티티 객체를 생성하면, 자동으로 기본 생성자가 만들어진다.
다만 프로그래머의 눈에 보이지는 않는다.
그런데 프로그래머가 사용자 입력 값의 인수(arguments) 생성자를 만들면
기본 생성자가 사라져버린다. 그러면 기본 생성자를 다시 작성해줘야 한다.
(interface, final, enum 클래스 제외)
'Framework > JPA' 카테고리의 다른 글
JPA 학습 내용을 정리한 로드맵 - 2.2 일대다 연관관계 (0) | 2022.12.20 |
---|---|
JPA 학습 내용을 정리한 로드맵 - 2. 연관관계/2.1 다대일 연관관계 (0) | 2022.12.19 |
JPA 학습 내용을 정리한 로드맵 - 1.1 기본 CRUD (0) | 2022.12.19 |
JPA 학습 내용을 정리한 로드맵 - 1. JPA란 무엇인가 (0) | 2022.12.19 |
Query dsl - Querying, Join, Paging 구현하기 (+query dsl 5.0.0 fetchResult count 쿼리 작성) (0) | 2022.11.29 |
Comments