Я попробовал приведенный выше код, и мне кажется, что он не фильтрует коллекцию B.
В конце концов я добавил дополнительный фильтр в классе A
@FilterDef(name="BFilter",
parameters= @ParamDef( name="bName", type="string" ) )
Public class A{
@Filter(
name = "BFilter",
condition="name = :bName"
)
private List<B> bList;
}
а затем я использую setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
, чтобы получить отдельный класс A
Он запрашивает 2 раза в БД и может быть нежелательным.Поправьте меня, если есть другие варианты.