일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- RFC723x
- 매핑정보가없는필드
- Transaction not successfully started
- gitrevert
- http
- KAKAOLOGINAPI
- initialDelay
- gitreset
- 캐쉬가능
- hibernate.dialect
- Invalid bound statement (not found)
- SpringBoot
- 무상태프로토콜
- 자바ORM표준프로그래밍
- 멱등활용
- HTTPMESSAGE
- @Entity
- 김영한JPA
- 네이버로그인API
- fixedDelay
- anyMatch
- @Table
- Git
- DB방언
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- JPA
- HTTP3
- org.apache.ibatis.binding.BindingException
- 네이버 연결된 서비스
- 데이터베이스 방언
Archives
- Today
- Total
twocowsong
@Entity 본문
깃허브 정리 URL : https://github.com/sWineTake/jpa.git
JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 합니다.
@Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 부릅니다.
@Entity 속성 정리
JPA에서 사용할 엔티티 이름을 지정합니다. 보통 기본값인 클래스 이름을 사용합니다.
만약 패키지에 이름이 같은 엔티티 클래스가있다면 충돌되지않게 이름을 지정해야합니다.
@Entity적용시 주의할 사항이 아래와 같습니다.
- 기본 생성자는 필수입니다.(파라미터가 없는 public 또는 protected 생성자)
- final 클래스, enum, interface, inner 클래스에 사용할 수 없습니다.
- 지정할 필드에 final을 사용하면 안됩니다.
JPA가 엔티티 객체를 생성할 때 기본 생성자를 사용하므로 이 생성자는 반드시 있어야 합니다.
자바는 생성자가 없을때 기본 생성자를 생성합니다.
문제는 생성자를 하나 이상 만들면 자바는 기본생성자를 만들지 않습니다. 이때는 기본 생성자를 직접 만들어야합니다.
저는 lombok라이브러리를 사용하여 아래와 같이 Member 엔티티를 만들었습니다.
@Getter
@Setter
@Entity
@NoArgsConstructor
@Table(name = "MEMBER")
public class Member {
@Id
@Column(name = "ID")
private String id;
@Column(name = "NAME")
private String username;
private Integer age;
public Member(String id, String username) {
this.id = id;
this.username = username;
}
public Member(String id, String username, Integer age) {
this.id = id;
this.username = username;
this.age = age;
}
}