Итак, я понимаю, как использовать фильтры JPA/Hibernate для немедленных вспомогательных свойств (здесь показано: annotation to filter results of a @OneToMany association), но я хочу использовать вложенное свойство для исключения ссылки. Поэтому, если C не является активным в качестве ссылки B, я не хочу, чтобы B был включен в набор. Вот пример кода, который не работает. Он жалуется на то, что c.Active неизвестно там, где находится столбец. Это связано с тем, что сгенерированный sql содержит c_0.is_active в качестве ссылки. Есть ли способ сделать что-то подобное?Hibernate + JPA @ Фильтр для вложенного объекта свойства
@Entity
public class A implements Serializable{
@Id
@Column(name = "REF")
private int ref;
@OneToMany
@JoinColumn(name = "A_REF", referencedColumnName = "REF")
@Filter(name="test")
private Set<B> bs;
}
@Entity
@FilterDef(name="test", defaultCondition="c.ACTIVE = 1")
public class B implements Serializable{
@Id
@Column(name = "A_REF")
private int aRef;
private C cObject;
}
@Entity
public class C implements Serializable{
@Id
private int ref;
@Column(name = "ACTIVE")
private boolean active;
}
любая удача с тестированием? –