У меня есть сущность A & B, как показано ниже. Я пытаюсь сначала отфильтровать сущность B перед A JoinColumn, чтобы получить B. Но фильтр всегда запускается после A JoinColumn :( Я благодарен за любую помощь
@Entity
@Table(name = "A")
public class A {
@Id
private Long id;
@Column(name = "name")
private String name;
@Column(name = "code_lang")
private String codeLang;
@ManyToOne
@JoinColumn(name = "b_id")
private B b;
}
@Entity
@Table(name = "B")
@FilterDef(
name = "languageFilterB",
parameters = @ParamDef(name = "filterCodeLangue", type = "string")
)
@Filter(
name = "languageFilterB",
condition = "code_lang = :filterCodeLangue"
)
public class B {
@Id
private Long id;
@Column(name = "name")
private String name;
@Column(name = "code_lang")
private String codeLang;
}
Проверка функции:
public void test() {
Session session = entityManager.unwrap(Session.class);
Filter sessionFilter = session.enableFilter("languageFilterB");
sessionFilter.setParameter("filterCodeLangue", "20");
List<A> res = aRepo.findAll();
}