카테고리 없음

[Spring] JPA Entity 복합키 설정/EmbededId

순무엄마동생 2021. 9. 26. 17:52

USER가 ITEM을 북마크할 때 데이터베이스 스키마를 아래와 같이 작성할 수 있다!

BOOKMARK의 PK는 uid와 item_id 값이 되는데 JPA에서는 복합키 설정을 위해서 @EmbededId를 사용한다!

 

User.java

@Entity
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class User {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long uid;
    
    private String username;
    private String password;
    private String email
}

 

Item.java

@Entity
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class Item {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long item_id;
    
    private String item_name;
    private int price
}

 

 

Bookmark.java

@Id 어노테이션이 아닌 BookmarkId라는 클래스를 만들고 @EmbeddedId로 이것을 Id값으로 준다. BookmarkId는 @Embeddable 어노테이션을 붙여준다.

@Entity
@Getter @Builder
@AllArgsConstructor
@NoArgsConstructor
public class Bookmark {
	@EmbeddedId
	private BookmarkId bookmarkId;
}
@Embeddable
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class BookmarkId implements Serializable {
    private Long uid;
    
    @Column(name = "item_id")
    private Long itemId;
}