· 8 years ago · Dec 08, 2017, 06:32 PM
1CREATE TABLE IF NOT EXISTS equipment (
2 equipment_id SERIAL PRIMARY KEY,
3 equipment_name VARCHAR(20) NOT NULL
4);
5
6CREATE TABLE IF NOT EXISTS meeting (
7 meeting_id SERIAL PRIMARY KEY,
8 meeting_time TIMESTAMP NOT NULL,
9 number_people INTEGER NOT NULL,
10 setup VARCHAR(255)
11);
12
13CREATE TABLE IF NOT EXISTS meeting_equipment (
14 meeting_equipment_id SERIAL PRIMARY KEY ,
15 meeting_id INTEGER NOT NULL REFERENCES meeting (meeting_id),
16 equipment_id INTEGER NOT NULL REFERENCES equipment (equipment_id),
17 quantity INTEGER NOT NULL DEFAULT 0
18);
19
20@Entity
21@Table(name = "meeting")
22@Data
23public class Meeting {
24 @Id
25 @GeneratedValue(strategy = GenerationType.IDENTITY)
26 @Column(name = "meeting_id", updatable = false)
27 @JsonIgnore
28 private int id;
29
30 @Column(name = "meeting_time")
31 @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
32 @NotNull
33 private LocalDateTime meetingTime;
34
35 @Column(name = "number_people")
36 @NotNull
37 @Min(1)
38 private int numberPeople;
39
40 @Column(name = "setup")
41 @NotNull
42 private String setup;
43
44 @OneToMany(mappedBy = "meeting")
45 @JsonManagedReference
46 List<MeetingEquipment> equipmentList = new ArrayList<>();
47}
48
49
50@Entity
51@Table(name = "equipment")
52@Data
53public class Equipment {
54 @Id
55 @Column(name = "equipment_id", updatable = false)
56 @JsonIgnore
57 private int id;
58
59 @NotNull
60 @Column(name = "equipment_name", unique = true)
61 @Size(min = 1, max = 100)
62 private String equipmentName;
63}
64
65@Entity
66@Table(name = "meeting_equipment", uniqueConstraints = {
67 @UniqueConstraint(columnNames = {"meeting_id", "equipment_id"})})
68@Data
69public class MeetingEquipment {
70 @Id
71 @GeneratedValue(strategy = GenerationType.IDENTITY)
72 @Column(name = "meeting_equipment_id", updatable = false)
73 @JsonIgnore
74 private int id;
75
76 @ManyToOne
77 @JoinColumn(name = "meeting_id")
78 @NotNull
79 @JsonBackReference
80 private Meeting meeting;
81
82 @ManyToOne
83 @JoinColumn(name = "equipment_id")
84 @NotNull
85 private Equipment equipment;
86
87 @Column(name = "quantity")
88 @NotNull
89 private int quantity;
90}