๐ ๋ค์ด๊ฐ๋ฉฐ
ํ ์ด๋ธ์ ์ค๊ณํ๋ค ๋ณด๋ฉด ์ฃผ๋ก detail ๊ด๋ จ ํ ์ด๋ธ์ id + ์๋ฒ์ผ๋ก ๋ณตํฉํค๋ฅผ ์์ฑํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ๋ณตํฉํค๋ฅผ ์ฌ์ฉํ๋ ํ ์ด๋ธ์ ์๋ฐ์์ Entity๋ก ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ค ๊ฐ์ฅ ํํ ์ฐ์ด๋ @EmbeddedId ์ด๋ ธํ ์ด์ ์ ๋ํด ํฌ์คํ ํ๋ ค๊ณ ํฉ๋๋ค.
๐ EmbeddedId
Embeddable Object๋ฅผ Id๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ฃผ๋ก ์๋์ ๊ฐ์ด ์ฝ๋ฉํ์ฌ ์ฌ์ฉํฉ๋๋ค.
@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class OrderItemId implements Serializable {
@Column(name = "ord_id")
private Long orderId;
@Column(name = "ord_srnm")
private int orderSerialNo;
}
@Embeddable ์ด๋ ธํ ์ด์ ์ ์ถ๊ฐํ๋ฉด ID์ญํ ๋ฟ๋ง ์๋๋ผ
๋ค๋ฅธ ์ํฐํฐ์์ ํ๋๋ก๋ ํ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ ๊ฒ ์์ฑํ ๋ณตํฉํค๋ฅผ ํ์ฉํ๊ณ ์ ํ๋ ๊ณณ์์ @EmbeddedId ์ด๋ ธํ ์ด์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
@Entity
@Table(name = "example_table")
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class ExampleTable {
@EmbeddedId
private OrderItemId orderItemId;
}
์ดํ๋ก ํด๋น ํ ์ด๋ธ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ค๋ฅธ ํ๋๋ค์ ์๋์ ์ถ๊ฐํด์ฃผ๋ฉด
๋ณตํฉํค๋ฅผ ์ฌ์ฉํ ํ ์ด๋ธ์ ์๋ฐ์ Entity ํ์์ผ๋ก ํํ์ด ๊ฐ๋ฅํฉ๋๋ค.
'BackEnd > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@Embeddable @Embedded ์ด๋ ธํ ์ด์ ์ ๋ํด ์์๋ณด์ (0) | 2023.04.24 |
---|---|
@Transient ์ด๋ ธํ ์ด์ ์ ๋ํ ์ดํด (1) | 2023.04.20 |
[JPA] ์์์ฑ ์ฐ๊ด๊ด๊ณ ์ ์ด CASCADE ๋? (0) | 2022.11.13 |
JPA์ Dirty Checking์ด๋? (0) | 2022.11.05 |