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
RevLine 
[3d3e59d]1package finki.paw5.model.entities;
[d427a07]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;
[038c9f7]7import jakarta.persistence.*;
[d427a07]8import lombok.Data;
[fdd7961]9import lombok.RequiredArgsConstructor;
[d427a07]10
[c03e53b]11import java.util.List;
12
[d427a07]13@Data
14@Entity
[fdd7961]15@RequiredArgsConstructor
[d427a07]16@Table(name = "pet")
17public class Pet {
18
19 @Id
[038c9f7]20 @GeneratedValue(strategy = GenerationType.IDENTITY)
[2fdea25]21 @Column(name = "id_pet")
[ada7108]22 private Integer id;
[d427a07]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)
[fdd7961]46 private Boolean canBeFostered;
[d427a07]47
[fdd7961]48 @ManyToOne
49 @JoinColumn(name = "id_adoption")
50 private Adoption adoption;
[d427a07]51
[fdd7961]52 @ManyToOne
53 @JoinColumn(name = "id_shelter")
54 private Shelter shelter;
[d427a07]55
[c03e53b]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
[fdd7961]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) {
[d427a07]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;
[fdd7961]91 this.adoption = adoption;
92 this.shelter = shelter;
[d427a07]93 }
94}
Note: See TracBrowser for help on using the repository browser.