start example hibernate lucene hibernate-search

example - Orden de búsqueda de Hibernate por niño



hibernate start (1)

En la búsqueda de hibernación, puede hacer un puente personalizado para este propósito.

Algo como:

@FieldBridge(impl = com.myco.myapp.CollectionCountBridge.class) @ContainedIn @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="TParent") public Set<TChild> getTChildSet() { return this.TChildSet; }

Con la implementación personalizada del puente:

public class CollectionCountBridge extends PaddedIntegerBridge { @Override public String objectToString(Object object) { if (object == null || (!(object instanceof Collection))) { return null; } Collection<?> coll = (Collection<?>) object; return super.objectToString(coll.size()); } }

Considerar:

@Indexed @Entity public class TParent implements java.io.Serializable { ..... private Set<TChild> TChildSet = new HashSet<TChild>(0); @ContainedIn @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="TParent") public Set<TChild> getTChildSet() { return this.TChildSet; }

Una consulta sería algo como esto:

FullTextQuery hibQuery = fullTextSession.createFullTextQuery( luceneQuery ); hibQuery.setSort( ... )

¿Cómo se puede lograr un conteo por hijos?

En otras palabras, el orden de la lista de TParent devuelto estaría dictado por el recuento de TChildSet.

Sé que se puede usar una @Formula en circunstancias de SQL. No estoy seguro de si se puede usar algo similar para Lucene?

Cualquier ayuda, consejos, comentarios, incluso la crítica bienvenida.

Muchas gracias John