1 package net.sumaris.core.model.referential.pmfm;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import lombok.Data;
26 import lombok.experimental.FieldNameConstants;
27 import net.sumaris.core.model.referential.IItemReferentialEntity;
28 import net.sumaris.core.model.referential.Status;
29 import org.hibernate.annotations.Cascade;
30
31 import javax.persistence.*;
32 import java.util.ArrayList;
33 import java.util.Date;
34 import java.util.List;
35
36
37
38
39 @Data
40 @FieldNameConstants
41 @Entity
42 @Table(name = "parameter")
43 @Cacheable
44 public class Parameter implements IItemReferentialEntity {
45
46 @Id
47 @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "PARAMETER_SEQ")
48 @SequenceGenerator(name = "PARAMETER_SEQ", sequenceName="PARAMETER_SEQ")
49 private Integer id;
50
51 @ManyToOne(fetch = FetchType.LAZY)
52 @JoinColumn(name = "status_fk", nullable = false)
53 private Status status;
54
55 @Column(name = "creation_date", nullable = false)
56 @Temporal(TemporalType.TIMESTAMP)
57 private Date creationDate;
58
59 @Column(name = "update_date")
60 @Temporal(TemporalType.TIMESTAMP)
61 private Date updateDate;
62
63 @Column(nullable = false, length = LENGTH_LABEL)
64 private String label;
65
66 @Column(nullable = false, length = LENGTH_NAME)
67 private String name;
68
69 private String description;
70
71 @Column(length = LENGTH_COMMENTS)
72 private String comments;
73
74 @Column(name = "is_qualitative", nullable = false)
75 private Boolean isQualitative;
76
77 @Column(name = "is_alphanumeric", nullable = false)
78 private Boolean isAlphanumeric;
79
80 @Column(name = "is_boolean")
81 private Boolean isBoolean;
82
83 @Column(name = "is_date")
84 private Boolean isDate;
85
86 @OneToMany(fetch = FetchType.LAZY, targetEntity = QualitativeValue.class, mappedBy = QualitativeValue.Fields.PARAMETER)
87 @Cascade(org.hibernate.annotations.CascadeType.DELETE)
88 private List<QualitativeValue> qualitativeValues = new ArrayList<>();
89
90
91 }