项目中有两个实体ApprovalFlow(审批),Rest(请假申请),
因为业务需求(多个实体的ID对应审批表的itemID),
两个实体没有做@OneToMany的关联,
现在需要通过 ApprovalFlow.itemId= Rest.id 进行关联查询。
我是用的CriteriaBuilder,Join等方法进行查询的,
想请问各位大神,这个关联如何写。
ApprovalFlow类
public class ApprovalFlow implements Serializable {
private static final long serialVersionUID = 976152522309023013L;
@Id
@GeneratedValue(generator="uuid")
@GenericGenerator(name="uuid", strategy="uuid")
@Column(length = 32)
private String id;
/**
* 审批项ID
*/
private String itemId;
/**
* 对应审批流程
*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn
private ApprovalProcess approvalProcess;
/**
* 模块
*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn
@NotNull
private Module module;
/**
* 审批人
*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn
private Account account;
/**
* 审批状态
*
* 0:未审批
* 1:公司内部审批中
* 2:总公司审批中
* 5:审批中止(拒绝)
* 10:审批完成
*/
private Integer status;
/**
* 备注
*/
private String remark;
// 省去getter setter
}
Rest类
public class Rest implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1900505784626965483L;
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid")
private String id;
/**
* 请假开始日期
*/
@Temporal(TemporalType.DATE)
@JSONField(format = "yyyy-MM-dd")
@NotNull
private Date startDate;
@Transient
private Date startStartDate;
@Transient
private Date endStartDate;
/*
* 请假结束时间
*/
@Temporal(TemporalType.DATE)
@JSONField(format = "yyyy-MM-dd")
@NotNull
private Date endDate;
@Transient
private Date startEndDate;
@Transient
private Date endEndDate;
/**
* 请假理由
*/
@Lob
@NotEmpty(message = "请假理由不能为空!")
@Column(columnDefinition="TEXT")
private String reason;
/**
* 请假天数
*/
@NotNull
@Column(length = 3)
private Integer dayNumber;
/**
* 账号信息
*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "account_id")
private Account account;
// 省去getter setter
}
将你的持久化对象贴出来,应该更好描述一些吧。
同样遇到一样的问题,请问问题解决了吗
这个我后来用视图解决了