1 package net.sumaris.core.model.technical.extraction;
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.IItemReferentialEntity;
29 import org.hibernate.annotations.Cascade;
30
31 import javax.persistence.*;
32 import java.util.List;
33
34 @Data
35 @FieldNameConstants
36 @Entity
37 @Cacheable
38 @Table(name = "extraction_product_column")
39 public class ExtractionProductColumn implements IEntity<Integer> {
40
41 @Id
42 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EXTRACTION_PRODUCT_COLUMN_SEQ")
43 @SequenceGenerator(name = "EXTRACTION_PRODUCT_COLUMN_SEQ", sequenceName="EXTRACTION_PRODUCT_COLUMN_SEQ")
44 private Integer id;
45
46 @Column(nullable = false, length = IItemReferentialEntity.LENGTH_LABEL)
47 private String label;
48
49 @Column(length = IItemReferentialEntity.LENGTH_NAME)
50 private String name;
51
52 @Column(name="column_name", nullable = false, length = 30)
53 private String columnName;
54
55 @Column(name="rank_order", length = 10)
56 private Integer rankOrder;
57
58 @Column(name="type", length = 30)
59 private String type;
60
61 @ManyToOne(fetch = FetchType.LAZY)
62 @JoinColumn(name = "extraction_product_table_fk", nullable = false)
63 private ExtractionProductTable table;
64
65 @OneToMany(fetch = FetchType.EAGER, targetEntity = ExtractionProductValue.class, mappedBy = ExtractionProductValue.Fields.COLUMN)
66 @Cascade(org.hibernate.annotations.CascadeType.DELETE)
67 private List<ExtractionProductValue> values;
68
69 }