reference
์คํํธ ์คํ๋ง ๋ถํธ - ๊ตฌ๋ฉ๊ฐ๊ฒ ์ฝ๋ฉ๋จ
www.datanucleus.org/products/accessplatform/jpa/annotations.html
code
๊ธฐ๋ณธ์ ์ผ๋ก lombok ์ ์ฌ์ฉํ์์ต๋๋ค.
import ๋ฌธ๋ ๊ฐ์ด ๋ณผ ์ ์๋๋ก ์ฒจ๋ถํ์์ต๋๋ค.
package org.zerock.domain;
import java.sql.Timestamp;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@Entity
@Table(name = "tbl_boards")
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long bno;
private String title;
private String writer;
private String content;
@CreationTimestamp
private Timestamp regdate;
@UpdateTimestamp
private Timestamp updatedate;
}
@Table
ํด๋์ค๊ฐ ํ ์ด๋ธ์ด ๋๊ธฐ ๋๋ฌธ์, ํด๋์ค์ ์ ์ธ๋ถ์ ์์ฑํ์ฌ ํ ์ด๋ธ๋ช ์ด ์ด๋ป๊ฒ ์ง์ ํ ์ง ๊ฒฐ์ ํ๋ค.
๋ง์ผ @Table์ด ์ง์ ๋์ง ์์ผ๋ฉด, ํด๋์ค ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ํ ์ด๋ธ์ด ์์ฑ๋๋ค.
attribute: name
ํด๋์ค๋ช ๊ณผ ๋ค๋ฅธ ์ด๋ฆ์ ํ ์ด๋ธ์ ์ง์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
attribute: catalog
ํ ์ด๋ธ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
attribute: schema
ํ ์ด๋ธ ์คํค๋ง๋ฅผ ์๋ฏธํ๋ค.
attribute: uniqueConstraints
์นผ๋ผ๊ฐ ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด์ ์ค๋ค.
attribute: indexes
์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค.
@Id
๊ฐ ์ํฐํฐ๋ฅผ ๊ตฌ๋ณํ ์ ์๋๋ก ํด๋น column์ ์๋ณํค (Primary Key - PK)๋ฅผ ์ง์ ํ๋ค.
์ฃผ๋ก @GeneratedValue ๋ผ๋ ์ด๋ ธํ ์ด์ ๊ณผ ๊ฐ์ด ์ด์ฉํด์ ์๋ณํค๋ฅผ ์ด๋ค ์ ๋ต์ผ๋ก ์์ฑํ๋์ง๋ฅผ ๋ช ์ํ๋ค.
@GeneratedValue
strategy: AUTO
ํน์ DB์ ๋ง๊ฒ ์๋์ผ๋ก ์์ฑ๋๋ ๋ฐฉ์
strategy: IDENTITY
๊ธฐ๋ณธ ํค ์์ฑ ๋ฐฉ์ ์์ฒด๋ฅผ DB์ ์๋ฏธํ๋ ๋ฐฉ์. DB์ ์์กด์ ์ธ ๋ฐฉ์.
MySQL ์์ ์ฃผ๋ก ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
strategy: SEQUENCE
DB์ ์ํ์ค๋ฅผ ์ด์ํ์ฌ ์๋ณํค ์์ฑ.
์ค๋ผํด์์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
strategy: TABLE
๋ณ๋์ ํค๋ฅผ ์์ฑํด ์ฃผ๋ ์ฑ๋ฒ ํ ์ด๋ธ(๋ฒํธ๋ฅผ ์ทจํ ๋ชฉ์ ์ผ๋ก ๋ง๋ ํ ์ด๋ธ)์ ์ด์ฉํ ๋ฐฉ์
@Column
DB์ ํ ์ด๋ธ์ ๊ตฌ์ฑํ ๋ ์ธ์คํด์ค ๋ณ์๊ฐ COLUMN์ด ๋๋ค.์๋์ ์ค์ ์ ํตํด COLUMN ๋ช ์ ๋ณ๋๋ก ์ง์ ํ๊ฑฐ๋ ์ฌ์ด์ฆ, ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์๋ค.
attribute: name
์นผ๋ผ ์ด๋ฆ
attribute: unique
์ ๋ํฌ ์ฌ๋ถ, true/false
attribute: nullable
null ํ์ฉ ์ฌ๋ถ !!!!, true/false
attribute: insertable
insert ๊ฐ๋ฅ ์ฌ๋ถ, true/false
attribute: updatable
update ๊ฐ๋ฅ ์ฌ๋ถ, true/false
attribute: table
ํ ์ด๋ธ ์ด๋ฆ
attribute: length
column ์ฌ์ด์ฆ
attribute: precision
์์ ์ ๋ฐ๋
attribute: scale
์์์ ์ดํ ์๋ฆฌ์
'JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Entity Life Cycle (0) | 2021.01.21 |
---|---|
Entity, Entity Manager (0) | 2021.01.21 |
Data source ์ค์ , JPA ๊ด๋ จ ์ค์ (0) | 2021.01.21 |
JPA (0) | 2021.01.21 |