테이블을 이번에 전부 변경했습니다.
https://www.erdcloud.com/d/TBkodsGPbZev8sBXs
users
package kr.co.kshproject.webDemo.Domain.Users;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import kr.co.kshproject.webDemo.Domain.Baskets.Baskets;
import kr.co.kshproject.webDemo.Domain.Comment.Comment;
import kr.co.kshproject.webDemo.Domain.Notice.Notice;
import kr.co.kshproject.webDemo.Domain.Orders.Orders;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
@Entity
@Getter
@Table(name = "users")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_SEQ")
@SequenceGenerator(name = "USERS_SEQ", sequenceName = "USERS_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
@NotEmpty
@Column(name = "username")
@Setter
private String username; //사용자 아이디
@NotEmpty
@Setter
private String email; //이메일
@NotEmpty
@Setter
private String name; //사용자 이름
@NotNull
@Setter
private Long level; // 계정권한 레벨
@Setter
private String password;
@JsonManagedReference
@OneToMany(mappedBy = "users", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Comment> comments = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "users", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Notice> notices = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "users", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Baskets> baskets = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "users", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Orders> orders = new ArrayList<>();
}
notice
package kr.co.kshproject.webDemo.Domain.Notice;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import kr.co.kshproject.webDemo.Domain.Comment.Comment;
import kr.co.kshproject.webDemo.Domain.Users.Users;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "Notice")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Notice {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "NOTICE_SEQ")
@SequenceGenerator(name = "NOTICE_SEQ", sequenceName = "NOTICE_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
@NotEmpty
@Setter
private String username;
@NotEmpty
@Setter
private String title;
@NotEmpty
@Setter
private String contents;
@NotEmpty
@Setter
private String email;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
@Setter
private Users users;
@JsonManagedReference
@OneToMany(mappedBy = "notice", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Comment> comments = new ArrayList<>();
}
comments
package kr.co.kshproject.webDemo.Domain.Comment;
import com.fasterxml.jackson.annotation.JsonBackReference;
import kr.co.kshproject.webDemo.Domain.Notice.Notice;
import kr.co.kshproject.webDemo.Domain.Users.Users;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
@Entity
@Table(name = "Comment")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "COMMENT_SEQ")
@SequenceGenerator(name = "COMMENT_SEQ", sequenceName = "COMMENT_SEQ", allocationSize = 1)
private Long id;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="notice_id")
@Setter
private Notice notice;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
@Setter
private Users users;
@NotEmpty
@Setter
private String userName;
@NotEmpty
@Setter
private String contents;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
}
products
package kr.co.kshproject.webDemo.Domain.Products;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import kr.co.kshproject.webDemo.Domain.Baskets.Baskets;
import kr.co.kshproject.webDemo.Domain.BeginOrder.BeginOrder;
import kr.co.kshproject.webDemo.Domain.Category.Category;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "Products")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Products {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PRODUCT_SEQ")
@SequenceGenerator(name = "PRODUCT_SEQ", sequenceName = "PRODUCT_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
@NotEmpty
@Setter
private String productName;
@NotEmpty
@Setter
private String describe;
@NotEmpty
@Setter
private Long price;
@NotEmpty
@Setter
private String picture;
@NotEmpty
@Setter
@Column(name = "sold_out")
private boolean soldOut;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
@NotEmpty
@Setter
@Column(name = "update_date")
private String updateDate;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="category_id")
@Setter
private Category category;
@JsonManagedReference
@OneToMany(mappedBy = "products", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Baskets> baskets = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "products", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<BeginOrder> beginOrders = new ArrayList<>();
}
orders
package kr.co.kshproject.webDemo.Domain.Orders;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import kr.co.kshproject.webDemo.Domain.BeginOrder.BeginOrder;
import kr.co.kshproject.webDemo.Domain.Users.Users;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "Orders")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Orders {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PRODUCT_SEQ")
@SequenceGenerator(name = "PRODUCT_SEQ", sequenceName = "PRODUCT_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
@NotEmpty
@Setter
private String payment;
@NotEmpty
@Setter
private String status;
@NotEmpty
@Setter
private Long price;
@NotEmpty
@Setter
private boolean cancel;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
@NotEmpty
@Setter
@Column(name = "update_date")
private String updateDate;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="user_id")
@Setter
private Users users;
@JsonManagedReference
@OneToMany(mappedBy = "orders", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<BeginOrder> beginOrders = new ArrayList<>();
}
beginorders
package kr.co.kshproject.webDemo.Domain.BeginOrder;
import com.fasterxml.jackson.annotation.JsonBackReference;
import kr.co.kshproject.webDemo.Domain.Orders.Orders;
import kr.co.kshproject.webDemo.Domain.Products.Products;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
@Entity
@Table(name = "BeginOrder")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class BeginOrder {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "BEGINORDER_SEQ")
@SequenceGenerator(name = "BEGINORDER_SEQ", sequenceName = "BEGINORDER_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
//프로덕트 ID
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="product_id")
@Setter
private Products products;
//주문 ID
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="order_id")
@Setter
private Orders orders;
@NotEmpty
@Setter
private Long quantity;
@NotEmpty
@Setter
private String picture;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
@NotEmpty
@Setter
@Column(name = "update_date")
private String updateDate;
}
category
package kr.co.kshproject.webDemo.Domain.Category;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import kr.co.kshproject.webDemo.Domain.Products.Products;
import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "Category")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CATEGORY_SEQ")
@SequenceGenerator(name = "CATEGORY_SEQ", sequenceName = "CATEGORY_SEQ", allocationSize = 1)
@Column(name = "ID")
private Long id; //key
@NotEmpty
@Setter
private String categoryName;
@NotEmpty
@Setter
@Column(name = "created_date")
private String createdDate;
@NotEmpty
@Setter
@Column(name = "update_date")
private String updateDate;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="category_id")
@Setter
private Category parentCategory;
@JsonManagedReference
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Products> products = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "parentCategory", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Category> parentCategories = new ArrayList<>();
}
'웹 > Spring vue 웹 개발' 카테고리의 다른 글
spring vue swagger 사용 및 controller,serivce 코드 완료 (0) | 2023.11.27 |
---|---|
spring vue jpa repository 테스트코드 (1) | 2023.11.26 |
spring vue 어드민 리팩토링01 (0) | 2023.11.18 |
spring vue 댓글 완료 (0) | 2023.11.12 |
spring vue 댓글 05 (1) | 2023.11.11 |