Show feed executors with specified date
Libraries:
org.hibernate
hibernate-annotations
3.3.1.GA
org.hibernate
hibernate-commons-annotations
3.3.0.ga
So Feed Entity:
@Entity(name="FEED")
@FilterDef(name="status", parameters=@ParamDef( name="date", type="date" ) )
public class Feed {
@Id
@Column(name="FEED_ID")
private int id;
@Column(name="NAME")
private String name;
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "FEED_ID")
@BatchSize(size=50)
@Fetch(FetchMode.SELECT)
@Filter(name="status", condition="BUSINESS_DATE=(select max(x.business_date) from FEED_RUN x where x.BUSINESS_DATE <= :date AND FEED_ID=x.FEED_ID)")
private List feedExecution;
}
Feed Runner Entity
@Entity(name = "FEED_RUN")
@Where(clause = "STATUS_ID <> 4")
public class FeedExecution {
@Id
@Column(name = "FEED_RUN_ID")
private int id;
@Column(name = "BUSINESS_DATE")
@Temporal(TemporalType.DATE)
private Date businessDate;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "STATUS_ID")
private Status status;
@Formula("decode((SELECT COUNT(*) FROM file_load fl WHERE feed_run_id = fl.feed_run_id)+(SELECT COUNT(*) FROM event_log ev WHERE feed_run_id = ev.feed_run_id)+(SELECT COUNT(*) FROM error_log er WHERE feed_run_id = er.feed_run_id), 0, 0, 1)")
private boolean executed;
}
No comments:
Post a Comment