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;
}
}