JPA JAVA EE
package com.logicbig.example;import javax.persistence.Convert;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import java.io.File;@Entitypublic class Report { @Id @GeneratedValue private long id; private String description; @Convert(converter = FileConverter.class) private File file; public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public File getFile() { return file; } public void setFile(File file) { this.file = file; } @Override public String toString() { return "Report{" + "id=" + id + ", description='" + description + '\'' + ", file=" + file + '}'; }}
package com.logicbig.example;import javax.persistence.*;import java.io.File;import java.util.ArrayList;import java.util.List;@Entitypublic class Journal { @Id @GeneratedValue private long id; @ElementCollection @Convert(converter = FileConverter.class, attributeName = "file") private List<Report> reports; public void addReport(String description, File file) { if (reports == null) { reports = new ArrayList<>(); } Report report = new Report(); report.setDescription(description); report.setFile(file); reports.add(report); } @Override public String toString() { return "Journal{" + "id=" + id + ", reports=" + reports + '}'; }}
package com.logicbig.example;import javax.persistence.*;import java.io.File;import java.util.HashMap;import java.util.Map;@Entitypublic class Journal { @Id @GeneratedValue private long id; @ElementCollection @Convert(converter = FileConverter.class, attributeName = "value") private Map<String, File> reportMap; public void addReport(String description, File file) { if (reportMap == null) { reportMap = new HashMap<>(); } reportMap.put(description, file); } @Override public String toString() { return "Journal{" + "id=" + id + ", reportMap=" + reportMap + '}'; }}
package com.logicbig.example;import javax.persistence.*;import java.io.File;import java.util.HashMap;import java.util.Map;@Entitypublic class Journal { @Id @GeneratedValue private long id; @ElementCollection @Convert(converter = FileConverter.class, attributeName = "value.file") private Map<String, Report> reportMap; public Map<String, Report> getReportMap() { return reportMap; } public void addReport(String reportName, String description, File file) { if (reportMap == null) { reportMap = new HashMap<>(); } Report report = new Report(); report.setDescription(description); report.setFile(file); reportMap.put(reportName, report); } @Override public String toString() { return "Journal{" + "id=" + id + ", reportMap=" + reportMap + '}'; }}