Hibernate One-to-Many(单向)

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

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值