Domanda

Nel mio database ho una tabella di entità (chiamiamola Entità).Ogni entità può avere un numero di tipi di entità e l'insieme di tipi di entità è statico.Pertanto, esiste una tabella di connessione che contiene le righe dell'ID entità e il nome del tipo di entità.Nel mio codice, EntityType è un'enumerazione ed Entity è una classe mappata in Hibernate.
nel codice Entità, la mappatura appare così:

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

Oh, ho già detto che sto usando le annotazioni?
Ora, quello che mi piacerebbe fare è creare una query HQL o effettuare una ricerca utilizzando un criterio per tutti gli oggetti entità di un tipo di entità specifico.

Questo La pagina nel forum di Hibernate dice che è impossibile, ma questa pagina ha 18 mesi.Qualcuno può dirmi se questa funzionalità è stata implementata in una delle ultime versioni di Hibernate o pianificata per la prossima versione?

È stato utile?

Soluzione

HQL:

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

Penso che potresti anche scriverlo così:

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

Altri suggerimenti

La tua relazione è bidirezionale, cioè lo fa EntityType abbi un Entity proprietà?Se è così, probabilmente puoi fare qualcosa del genere entity.Name from EntityType where name = ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top