La consulta de las colecciones de tipo de valor en los Criterios de la API en modo de Hibernación

StackOverflow https://stackoverflow.com/questions/49334

  •  09-06-2019
  •  | 
  •  

Pregunta

En mi base de datos tengo una tabla de entidad (vamos a llamar a la Entidad).Cada entidad puede tener un número de tipos de entidades, y el conjunto de los tipos de entidad que es estático.Por lo tanto, hay una conexión de la tabla que contiene las filas de la id de la entidad y el nombre de la tipo de entidad.En mi código, EntityType es una enumeración, y la Entidad es una de Hibernación asignado en clase.
en el código de Entidad, la asignación se parece a esto:

@CollectionOfElements
@JoinTable(
        name = "ENTITY-ENTITY-TYPE",
        joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
    return entityTypes;
}

Oh, ¿he mencionado que estoy usando anotaciones?
Ahora, lo que me gustaría hacer es crear una consulta HQL o de búsqueda utilizando un Criterio para todos los objetos de Entidad de un determinado tipo de entidad.

Este en la página de Hibernate en el foro de dice que esto es imposible, pero esta página es de 18 meses de edad.¿Alguien puede decirme si esta característica ha sido implementado en una de las últimas versiones de Hibernación, o previstas para la próxima versión?

¿Fue útil?

Solución

HQL:

select entity from Entity entity where :type = some elements(entity.types)

Creo que también se puede escribir como:

select entity from Entity entity where :type in(entity.types)

Otros consejos

Es tu relación bidireccional, es decir, hace EntityType tiene una Entity la propiedad?Si es así, usted probablemente puede hacer algo como entity.Name from EntityType where name = ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top