From 5d0a9e3881e38c9a42f874c913a692ac60e3fd28 Mon Sep 17 00:00:00 2001 From: Bojnourdi Date: Fri, 21 Aug 2015 14:22:04 +0200 Subject: [PATCH] - Now it's possible to create a link between a study and files Experimenting SQL geneation from entities with JPA 2.1 so no new SQL DDL added --- .../GDE_App/GDE-ejb/src/conf/persistence.xml | 1 + .../src/java/com/edf/gde/entities/Study.java | 42 +++++++++---- .../java/com/edf/gde/entities/StudyFiles.java | 60 +++++++++++++++++++ 3 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/StudyFiles.java diff --git a/projects/GDE_App/GDE-ejb/src/conf/persistence.xml b/projects/GDE_App/GDE-ejb/src/conf/persistence.xml index 775e749..b2b1d79 100644 --- a/projects/GDE_App/GDE-ejb/src/conf/persistence.xml +++ b/projects/GDE_App/GDE-ejb/src/conf/persistence.xml @@ -6,6 +6,7 @@ false + diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Study.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Study.java index 07cfd8f..8f763a2 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Study.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Study.java @@ -6,15 +6,20 @@ package com.edf.gde.entities; import com.edf.gde.transferables.StudyTO; import java.io.Serializable; import java.util.Date; +import java.util.List; import java.util.Objects; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; +import javax.persistence.OneToMany; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; @@ -39,6 +44,7 @@ import javax.xml.bind.annotation.XmlRootElement; @NamedQuery(name = "Study.findByDeletionDate", query = "SELECT s FROM Study s WHERE s.deletionDate = :deletionDate") }) public class Study implements Serializable { + private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @@ -67,11 +73,18 @@ public class Study implements Serializable { private Long attributeGroupId; @Column(name = "profile_id", nullable = true) private Long profileId; - @Column(name ="locked") + @Column(name = "locked") private boolean locked; - @Column(name ="lock_owner") + @Column(name = "lock_owner") private Long lockOwner; - + @OneToMany(fetch = FetchType.LAZY) + @JoinTable( + name = "study_files", + joinColumns = @JoinColumn(name = "studyId", referencedColumnName = "id"), + inverseJoinColumns = @JoinColumn(name = "fileId", referencedColumnName = "id") + ) + private List files; + public Study() { } @@ -167,35 +180,43 @@ public class Study implements Serializable { this.lockOwner = lockOwner; } + public List getFiles() { + return files; + } + + public void setFiles(List files) { + this.files = files; + } + public static Study fromStudyTO(StudyTO sto) { Study s = new Study(); s.creationDate = sto.getCreationDate(); s.deleted = sto.getDeleted(); s.deletionDate = sto.getDeletionDate(); - s.attributeGroupId = sto.getAttributeGroupId()==0?null:sto.getAttributeGroupId(); + s.attributeGroupId = sto.getAttributeGroupId() == 0 ? null : sto.getAttributeGroupId(); s.id = sto.getId(); s.name = sto.getName(); s.updateDate = sto.getUpdateDate(); s.valid = sto.getValid(); - s.profileId = sto.getProfileId()==0?null:sto.getProfileId(); + s.profileId = sto.getProfileId() == 0 ? null : sto.getProfileId(); s.locked = sto.isLocked(); - s.lockOwner= sto.getLockOwner()==0?null:sto.getLockOwner(); + s.lockOwner = sto.getLockOwner() == 0 ? null : sto.getLockOwner(); return s; } public StudyTO toStudyTO() { - StudyTO sto = new StudyTO(); + StudyTO sto = new StudyTO(); sto.setCreationDate(this.creationDate); sto.setDeleted(this.deleted); sto.setDeletionDate(this.deletionDate); - sto.setAttributeGroupId(this.attributeGroupId==null?0:this.attributeGroupId); + sto.setAttributeGroupId(this.attributeGroupId == null ? 0 : this.attributeGroupId); sto.setId(this.id); sto.setName(this.name); sto.setUpdateDate(this.updateDate); sto.setValid(this.valid); - sto.setProfileId(this.profileId==null?0:this.profileId); + sto.setProfileId(this.profileId == null ? 0 : this.profileId); sto.setLocked(this.locked); - sto.setLockOwner(this.lockOwner==null?0:this.lockOwner); + sto.setLockOwner(this.lockOwner == null ? 0 : this.lockOwner); return sto; } @@ -235,5 +256,4 @@ public class Study implements Serializable { return true; } - } diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/StudyFiles.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/StudyFiles.java new file mode 100644 index 0000000..2a3c149 --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/StudyFiles.java @@ -0,0 +1,60 @@ +/* + * (C) 2015 EDF + */ +package com.edf.gde.entities; + +/** + * + * @author Kavoos + */ +/* +@Entity(name = "StudyFiles") +@Table(name = "study_files", indexes = { + @Index(name = "study_file_idx1", columnList = "studyId", unique = false), + @Index(name = "study_file_idx2", columnList = "fileId", unique = false) +}) +public class StudyFiles { + + private static final long serialVersionUID = 1L; + @Id + @Basic(optional = false) + @NotNull + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_GEN_SEQUENCE") + @SequenceGenerator(name = "SEQ_GEN_SEQUENCE", allocationSize = 50) + private long id; + @JoinColumn(name = "studyId") + @OneToOne(optional = false) + Study study; + @OneToOne(optional = false) + @JoinColumn(name = "fileId") + GDEFile file; + + public StudyFiles() { + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public Study getStudy() { + return study; + } + + public void setStudy(Study study) { + this.study = study; + } + + public GDEFile getFile() { + return file; + } + + public void setFile(GDEFile file) { + this.file = file; + } +} +*/ \ No newline at end of file -- 2.39.2