One-to-Many(單向)
阿新 • • 發佈:2019-02-20
package com.hibernate.ano; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import org.hibernate.annotations.GenericGenerator; /** * @ClassName: ReportForm.java * * @Description: 報表 * * @author GERRARD * * @date 2015年1月26日下午1:56:25 * */ @Entity @Table(name = "report_form") public class ReportForm implements java.io.Serializable { /** * */ private static final long serialVersionUID = 3967334816987304916L; /** * 主鍵ID */ private String pid; /** * 報表日期 */ private Date reportDate; /** * 報表人 */ private String reporter; /** * 報表明細 */ private Set<ReportDetails> details; public ReportForm() { } public ReportForm(String pid, Date reportDate, String reporter, Set<ReportDetails> details) { this.pid = pid; this.reportDate = reportDate; this.reporter = reporter; this.details = details; } @Id @Column(name = "pid", unique = true, nullable = false, length = 32) @GeneratedValue(generator = "generator") @GenericGenerator(name = "generator", strategy = "uuid") public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } @Temporal(TemporalType.TIMESTAMP) @Column(name = "report_date", length = 19) public Date getReportDate() { return reportDate; } public void setReportDate(Date reportDate) { this.reportDate = reportDate; } @Column(name = "reporter", length = 25) public String getReporter() { return reporter; } public void setReporter(String reporter) { this.reporter = reporter; } /** * OneToMany(cascade=CascadeType.ALL) 一對多級聯操作 * * JoinColumn(name="reportId") 關聯明細表reportId欄位 * * OrderBy(value = "createDate desc") 關聯多條資料按 createDate desc 排序 */ @OneToMany(cascade=CascadeType.ALL) @JoinColumn(name="reportId") @OrderBy(value = "createDate desc") public Set<ReportDetails> getDetails() { return details; } public void setDetails(Set<ReportDetails> details) { this.details = details; } }
package com.hibernate.ano; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import org.hibernate.annotations.GenericGenerator; /** * @ClassName: ReportDetails.java * * @Description: 報表明細 * * @author GERRARD * * @date 2015年1月26日下午2:08:16 * */ @Entity @Table(name = "Report_details") public class ReportDetails implements java.io.Serializable { /** * */ private static final long serialVersionUID = -2120324671262740894L; /** * 主鍵ID */ private String pid; /** * 建立日期 */ private Date createDate; /** * 資料內容 */ private String dataContent; /** * 報表ID */ private String reportId; public ReportDetails() { } public ReportDetails(String pid, Date createDate, String dataContent, String reportId) { this.pid = pid; this.createDate = createDate; this.dataContent = dataContent; this.reportId = reportId; } @Id @Column(name = "pid", unique = true, nullable = false, length = 32) @GeneratedValue(generator = "generator") @GenericGenerator(name = "generator", strategy = "uuid") public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } @Temporal(TemporalType.TIMESTAMP) @Column(name = "create_date", length = 19) public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } @Column(name = "data_content", length = 255) public String getDataContent() { return dataContent; } public void setDataContent(String dataContent) { this.dataContent = dataContent; } @Column(name = "reportId", length = 32) public String getReportId() { return reportId; } public void setReportId(String reportId) { this.reportId = reportId; } }