- [JPA] 12. @Entity를 사용하여 엔티티 만들기2024년 09월 30일
- Song hyun
- 작성자
- 2024.09.30.:47
728x90반응형[JPA] 12. @Entity를 사용하여 엔티티 사용하기
1. @Entity, @GenerationValue를 사용하여 엔티티 생성하기
JPA를 사용해, 쿼리를 사용하지 않고 데이터베이스에 엔티티를 만들어보자.
아무 어노테이션도 붙이지 않고, Address 객체를 생성했을 때에는 h2 console에 아무 이상이 없다.
- @Entity
- @Id
- @GenerationValue
@Entity, @Id, @GenerationValue 어노테이션을 사용해보자.
쿼리문을 사용하지 않고도 성공적으로 생성된 것을 확인할 수 있다.
package com.example.demo.model; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @Entity public class Address { // @Id: DB 테이블의 PK를 나타낸다. // DB 테이블에서 이 필드를 기준으로 레코드를 구분한다. // @GeneratedValue // 이 어노테이션은 기본 키가 자동으로 생성되게 하다. // GenerationType.Identity는 DB의 Auto_increment를 사용해 기본 키 값을 자동 생성한다. @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String city; private String street; }
2. 연습 문제: User 객체 만들기
*User는 예약어이기 때문에 생성이 되지 않는다!
*다른 숫자나 문자를 덧붙여 만들어보자.
package com.example.demo.model; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @Entity public class User1 { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; }
혹은 @Entity(name="user_tb")를 통해 엔티티 명을 별도로 설정해줄 수도 있다.
package com.example.demo.model; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @Entity(name = "tb_user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; }
728x90반응형'JPA' 카테고리의 다른 글
[JPA] 14. REST API란? (0) 2024.10.01 [JPA] 13. 단방향과 양방향 참조의 특징 (0) 2024.09.30 [JPA] 11. 단방향, 양방향 매핑에 대한 이해 (0) 2024.09.30 [JPA] *Springboot Starter Project - 프로젝트 설정하기 (1) 2024.09.30 [JPA] 10. 영속성 컨텍스트 (0) 2024.09.30 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)