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;
}