source: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java@ c03e53b

main
Last change on this file since c03e53b was c03e53b, checked in by SazdovaEkaterina <sazdovaekaterina@…>, 16 months ago

m-m relations

  • Property mode set to 100644
File size: 2.7 KB
Line 
1package finki.paw5.model.entities;
2
3import finki.paw5.model.enumerations.AgeGroup;
4import finki.paw5.model.enumerations.Gender;
5import finki.paw5.model.enumerations.Size;
6import finki.paw5.model.enumerations.Species;
7import jakarta.persistence.*;
8import lombok.Data;
9import lombok.RequiredArgsConstructor;
10
11import java.util.List;
12
13@Data
14@Entity
15@RequiredArgsConstructor
16@Table(name = "pet")
17public class Pet {
18
19 @Id
20 @GeneratedValue(strategy = GenerationType.IDENTITY)
21 @Column(name = "id_pet")
22 private Integer id;
23
24 @Column(name = "url_pet_image", length = 200)
25 private String imageUrl;
26
27 @Column(name = "age_group", nullable = false)
28 private AgeGroup ageGroup;
29
30 @Column(name = "size_pet", nullable = false)
31 private Size size;
32
33 @Column(name = "breed", length = 100)
34 private String breed;
35
36 @Column(name = "name_pet", length = 20)
37 private String name;
38
39 @Column(name = "species", nullable = false)
40 private Species species;
41
42 @Column(name = "gender", nullable = false)
43 private Gender gender;
44
45 @Column(name = "can_be_fostered", nullable = false)
46 private Boolean canBeFostered;
47
48 @ManyToOne
49 @JoinColumn(name = "id_adoption")
50 private Adoption adoption;
51
52 @ManyToOne
53 @JoinColumn(name = "id_shelter")
54 private Shelter shelter;
55
56 @ManyToMany
57 @JoinTable(name = "pet_belongs_to_category",
58 joinColumns = @JoinColumn(name = "id_pet"),
59 inverseJoinColumns = @JoinColumn(name = "id_category"))
60 List<Category> categories;
61
62 @ManyToMany
63 @JoinTable(name = "pet_needs_intervention_in_vet_clinic",
64 joinColumns = @JoinColumn(name = "id_pet"),
65 inverseJoinColumns = @JoinColumn(name = "id_vet_clinic"))
66 List<VetClinic> vetClinicsTreatedIn;
67
68 @ManyToMany
69 @JoinTable(name = "pet_needs_therapy",
70 joinColumns = @JoinColumn(name = "id_pet"),
71 inverseJoinColumns = @JoinColumn(name = "id_therapy"))
72 List<Therapy> therapies;
73
74 @ManyToMany
75 @JoinTable(name = "pet_preferably_eats_food",
76 joinColumns = @JoinColumn(name = "id_pet"),
77 inverseJoinColumns = @JoinColumn(name = "id_food"))
78 List<Food> preferredFoods;
79
80 public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed,
81 String name, Species species, Gender gender, Boolean canBeFostered,
82 Adoption adoption, Shelter shelter) {
83 this.imageUrl = imageUrl;
84 this.ageGroup = ageGroup;
85 this.size = size;
86 this.breed = breed;
87 this.name = name;
88 this.species = species;
89 this.gender = gender;
90 this.canBeFostered = canBeFostered;
91 this.adoption = adoption;
92 this.shelter = shelter;
93 }
94}
Note: See TracBrowser for help on using the repository browser.