Facebook
From Hot Leopard, 3 Years ago, written in Java 5.
Embed
Download Paste or View Raw
Hits: 67
  1. package com.project.model;
  2.  
  3. import java.time.LocalDate;
  4. import java.time.LocalDateTime;
  5. import java.util.List;
  6. import java.util.Set;
  7.  
  8. import javax.persistence.Column;
  9. import javax.persistence.Entity;
  10. import javax.persistence.GeneratedValue;
  11. import javax.persistence.GenerationType;
  12. import javax.persistence.Id;
  13. import javax.persistence.JoinColumn;
  14. import javax.persistence.JoinTable;
  15. import javax.persistence.ManyToMany;
  16. import javax.persistence.OneToMany;
  17. import javax.persistence.Table;
  18. import javax.validation.constraints.NotNull;
  19. import javax.validation.constraints.Size;
  20. import javax.validation.constraints.NotBlank;
  21. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  22.  
  23.  
  24. import org.hibernate.annotations.CreationTimestamp;
  25. import org.hibernate.annotations.UpdateTimestamp;
  26.  
  27. @Table(name="projekt") //potrzebne tylko jeżeli nazwa tabeli w bazie danych ma być inna od nazwy klasy
  28. public class Projekt {
  29.        
  30.         @Id
  31.         @GeneratedValue(strategy = GenerationType.IDENTITY)
  32.         @Column(name="projekt_id") //tylko jeżeli nazwa kolumny w bazie danych ma być inna od nazwy zmiennej
  33.         private Integer projektId;
  34.        
  35.         //lepszym rozwiązaniem jest przechowywanie komunikatów poza kodem źródłowym np. w plikach *.properties
  36.         @NotNull
  37.         @NotBlank(message = "Pole nazwa nie może być puste!")
  38.         @Size(min = 3, max = 50, message = "Nazwa musi zawierać od {min} do {max} znaków!")
  39.         @Column(nullable = false, length = 50)
  40.         private String nazwa;
  41.        
  42.         @NotNull
  43.         @Size(max = 50, message = "Opis może zawierać do {max} znaków!")
  44.         @Column(nullable = false, length = 200)
  45.         private String opis;
  46.        
  47.         @NotNull
  48.         @CreationTimestamp
  49.         @Column(name = "dataczas_utworzenia", nullable = false, updatable = false)
  50.         private LocalDateTime dataCzasUtworzenia;
  51.        
  52.         @NotNull
  53.         @UpdateTimestamp
  54.         @Column(name = "data_oddania", nullable = false)
  55.         private LocalDate dataOddania;
  56.        
  57.         @OneToMany(mappedBy = "projekt")
  58.         @JsonIgnoreProperties({"projekt"})
  59.         private List<Zadanie> zadania;
  60.        
  61.         @JsonIgnoreProperties({"projekty"})
  62.         @ManyToMany
  63.         @JoinTable(
  64.                 name = "projekt_student",
  65.                 joinColumns = {@JoinColumn(name="projekt_id")},
  66.                 inverseJoinColumns = {@JoinColumn(name="student_id")}
  67.         )
  68.         private Set<Student> studenci;
  69.        
  70.         public Set<Student> getStudenci() {
  71.                 return studenci;
  72.         }
  73.         public void setStudenci(Set<Student> studenci) {
  74.                 this.studenci = studenci;
  75.         }
  76.         public List<Zadanie> getZadania() {
  77.                 return zadania;
  78.         }
  79.         public void setZadania(List<Zadanie> zadania) {
  80.                 this.zadania = zadania;
  81.         }
  82.         public Integer getProjektId() {
  83.                 return projektId;
  84.         }
  85.         public void setProjektId(Integer projektId) {
  86.                 this.projektId = projektId;
  87.         }
  88.         public String getNazwa() {
  89.                 return nazwa;
  90.         }
  91.         public void setNazwa(String nazwa) {
  92.                 this.nazwa = nazwa;
  93.         }
  94.         public String getOpis() {
  95.                 return opis;
  96.         }
  97.         public void setOpis(String opis) {
  98.                 this.opis = opis;
  99.         }
  100.         public LocalDateTime getDataCzasUtworzenia() {
  101.                 return dataCzasUtworzenia;
  102.         }
  103.         public void setDataCzasUtworzenia(LocalDateTime dataCzasUtworzenia) {
  104.                 this.dataCzasUtworzenia = dataCzasUtworzenia;
  105.         }
  106.         public LocalDate getDataOddania() {
  107.                 return dataOddania;
  108.         }
  109.         public void setDataOddania(LocalDate dataOddania) {
  110.                 this.dataOddania = dataOddania;
  111.         }
  112.        
  113.         public Projekt() {}
  114.        
  115.         public Projekt(Integer projektId, String nazwa, String opis, LocalDateTime dataCzasUtworzenia, LocalDate dataOddania) {
  116.                 super();
  117.                 this.projektId = projektId;
  118.                 this.nazwa = nazwa;
  119.                 this.opis = opis;
  120.                 this.dataCzasUtworzenia = dataCzasUtworzenia;
  121.                 this.dataOddania = dataOddania;
  122.         }
  123.        
  124.         public Projekt(String nazwa, String opis, LocalDate dataOddania) {
  125.                 super();
  126.                 this.nazwa = nazwa;
  127.                 this.opis = opis;
  128.                 this.dataOddania = dataOddania;
  129.         }
  130.  
  131. }
  132.