1 package net.sumaris.core.model.administration.programStrategy;
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.dao.technical.model.IEntity;
28 import net.sumaris.core.model.referential.location.Location;
29 import org.hibernate.annotations.Cascade;
30
31 import javax.persistence.*;
32 import java.util.ArrayList;
33 import java.util.List;
34
35 @Data
36 @FieldNameConstants
37 @Entity
38 @Table(name = "applied_strategy")
39 public class AppliedStrategy implements IEntity<Integer> {
40
41 @Id
42 @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "APPLIED_STRATEGY_SEQ")
43 @SequenceGenerator(name = "APPLIED_STRATEGY_SEQ", sequenceName="APPLIED_STRATEGY_SEQ")
44 private Integer id;
45
46 @ManyToOne(fetch = FetchType.LAZY)
47 @JoinColumn(name = "strategy_fk", nullable = false)
48 private Strategy strategy;
49
50 @ManyToOne(fetch = FetchType.LAZY)
51 @JoinColumn(name = "location_fk", nullable = false)
52 private Location location;
53
54 @OneToMany(fetch = FetchType.LAZY, mappedBy = AppliedPeriod.Fields.APPLIED_STRATEGY)
55 @Cascade(org.hibernate.annotations.CascadeType.DELETE)
56 private List<AppliedPeriod> appliedPeriods = new ArrayList<>();
57
58 @OneToMany(fetch = FetchType.LAZY, mappedBy = PmfmAppliedStrategy.Fields.APPLIED_STRATEGY)
59 @Cascade(org.hibernate.annotations.CascadeType.DELETE)
60 private List<PmfmAppliedStrategy> pmfmStrategies = new ArrayList<>();
61
62 }