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.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.Date;
33 import java.util.List;
34
35 @Data
36 @FieldNameConstants
37 @Entity
38 @Cacheable
39 @Table(name = "extraction_product_table")
40 public class ExtractionProductTable implements IItemReferentialEntity {
41
42 @Id
43 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EXTRACTION_PRODUCT_TABLE_SEQ")
44 @SequenceGenerator(name = "EXTRACTION_PRODUCT_TABLE_SEQ", sequenceName="EXTRACTION_PRODUCT_TABLE_SEQ")
45 private Integer id;
46
47 @Column(nullable = false, length = LENGTH_LABEL)
48 private String label;
49
50 @Column(nullable = false, length = LENGTH_NAME)
51 private String name;
52
53 @ManyToOne(fetch = FetchType.LAZY)
54 @JoinColumn(name = "status_fk", nullable = false)
55 private Status status;
56
57 @Column(name = "creation_date", nullable = false)
58 @Temporal(TemporalType.TIMESTAMP)
59 private Date creationDate;
60
61 @Column(name = "update_date")
62 @Temporal(TemporalType.TIMESTAMP)
63 private Date updateDate;
64
65 @Column(name="catalog", length = 30)
66 private String catalog;
67
68 @Column(name="schema", length = 30)
69 private String schema;
70
71 @Column(name="table_name", nullable = false, length = 30)
72 private String tableName;
73
74 @Column(name = "is_spatial")
75 private Boolean isSpatial;
76
77 @ManyToOne(fetch = FetchType.LAZY)
78 @JoinColumn(name = "extraction_product_fk", nullable = false)
79 private ExtractionProduct product;
80
81 @OneToMany(fetch = FetchType.LAZY, targetEntity = ExtractionProductColumn.class, mappedBy = ExtractionProductColumn.Fields.TABLE)
82 @Cascade(org.hibernate.annotations.CascadeType.DELETE)
83 private List<ExtractionProductColumn> columns;
84
85 }