вот моя проблема.Hibernate поиск делает поиск фильтра на двух разных таблицах
У меня есть две индексированные модели ACL и Asset. Между этими двумя таблицами нет реальной связи, а идентификатор объекта ACL не совпадает с объектом Asset.
С HQL, у меня есть этот запрос, как работает отлично:
String[] permissions
Query query = session.createQuery("From Asset as asset, "
+ "Acl as acl "
+ "where asset.id = :id and asset.id = acl.object.id "
+ AclService.buildQuery (permissions)
+ "and acl.group in (:groups) ");
query.setParameter("id", assetId);
query.setParameterList("groups", user.getGroup().getGroups().values());
public static String buildQuery(String[] perms) {
StringBuilder buf = new StringBuilder();
for (int i=0; i<perms.length; i++) {
buf.append("and ");
buf.append(perms[i]);
buf.append(" = true ");
}
return buf.toString();
}
Я хочу сделать такой же запрос к базе данных, но и с помощью Hibernate Search. Как я могу это сделать. Я уже смотрел это http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filter, но я не смог добиться хороших результатов.
Как я могу это сделать точно?
Как вы индексируете ACL и Asset? Что вы пробовали? Скорее всего, вам нужно будет индексировать оба класса в один и тот же индекс. – Hardy