Pergunta

No meu banco de dados, tenho uma tabela de entidades (vamos chamá-la de Entidade).Cada entidade pode ter vários tipos de entidade e o conjunto de tipos de entidade é estático.Portanto, existe uma tabela de conexão que contém linhas do ID da entidade e do nome do tipo de entidade.No meu código, EntityType é um enum e Entity é uma classe mapeada pelo Hibernate.
no código da Entidade, o mapeamento fica assim:

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

Ah, eu mencionei que estou usando anotações?
Agora, o que eu gostaria de fazer é criar uma consulta HQL ou pesquisar usando critérios para todos os objetos Entidade de um tipo de entidade específico.

Esse página no fórum do Hibernate diz que isso é impossível, mas esta página tem 18 meses.Alguém pode me dizer se esse recurso foi implementado em uma das versões mais recentes do Hibernate ou está planejado para a próxima versão?

Foi útil?

Solução

HQL:

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

Eu acho que você também pode escrever assim:

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

Outras dicas

O seu relacionamento é bidirecional, ou seja, EntityType tem um Entity propriedade?Se sim, você provavelmente pode fazer algo como entity.Name from EntityType where name = ?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top