View Javadoc
1   package net.sumaris.core.model.referential.pmfm;
2   
3   /*-
4    * #%L
5    * SUMARiS:: Core
6    * %%
7    * Copyright (C) 2018 SUMARiS Consortium
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
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  
30  import javax.persistence.*;
31  import java.util.Date;
32  
33  /**
34   * Le support est un composant du milieu sur lequel porte l'investigation. Les supports sont, par exemple :
35   * un engin, poisson (merlu, sardine...), une marée, ...
36   *
37   * Le support ne correspond pas au support réellement analysé. En effet, il peut s'agir d'une analyse sur une fraction du support (par exemple, pour le poisson, l'otolite,… ou pour un engin, le bras).
38   */
39  @Data
40  @FieldNameConstants
41  @Entity
42  @Table(name = "matrix")
43  @Cacheable
44  public class Matrix implements IItemReferentialEntity {
45  
46      @Id
47      @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "MATRIX_SEQ")
48      @SequenceGenerator(name = "MATRIX_SEQ", sequenceName="MATRIX_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  }