運賃クラスにマッピングしたいTrain.fares
のですが、現在有効な運賃のみ (発効日/有効期限内) のみです。Fareの@Where
注釈で、どのようにそれを指定し、とeffDate
をexpDate
参照できますか?Fare.effDate
Fare.expDate
@Entity
@Table(name = "TRAIN")
@Configurable
public class Train {
@Id
private String id;
@Column
private Date ddate;
@Column
private String company;
@Column (name = "NBR")
private String trainNbr;
@OneToMany(mappedBy = "flight", fetch = FetchType.LAZY)
@Id
private List<Fare> Fares;
...setters & getters
}
@Entity
@Table(name = "FARE")
public class Fare {
@Id
private Long id;
@Column
private String company;
@Column (name = "NBR")
private string trainNbr;
@Column
private Date effDate;
@Column
private Date expDate;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "COMP", referencedColumnName = "COMP", insertable = false, updatable = false),
@JoinColumn(name = "NBR", referencedColumnName = "NBR", insertable = false, updatable = false)
})
@Where(clause = "SELECT t from TRAIN as t where t.ddate >= effDate AND t.ddate <= expDate")
private Train train;
...setters & getters
}