2つのテーブルがあり、一方が他方の親になっています。子テーブルには、有効性を決定する開始日列と終了日列があります。次のフィルター設定は、有効な子のみをロードするために機能します。
@Entity
@Table(name = "child")
@FilterDef(name = "dateFilter", parameters = @ParamDef( name = "targetDate", type = "string" ))
@Filter(name = "dateFilter", condition = "(:targetDate between to_char(startDate, 'yyyyMMdd') and to_char(endDate, 'yyyyMMdd')")
public class Child {}
私が欲しいのは、すべての親と、親エンティティ定義で始まる有効な子のみをロードすることです。次のコードは、有効な子だけでなく、すべての子をロードします。
@Entity
@Table(name = "parent")
public class Parent {
@OneToMany(mappedBy = "parent")
private Collection<Child> childCollection = new HashSet<Child>();
}
子に作用する親エンティティクラスのフィルターを指定するにはどうすればよいですか?