Question

Dans ma base de données, j'ai une table d'entités (appelons-la Entité).Chaque entité peut avoir un certain nombre de types d'entités et l'ensemble des types d'entités est statique.Par conséquent, il existe une table de connexion qui contient les lignes de l’identifiant de l’entité et le nom du type d’entité.Dans mon code, EntityType est une énumération et Entity est une classe mappée par Hibernate.
dans le code de l'entité, le mappage ressemble à ceci :

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

Oh, ai-je mentionné que j'utilise des annotations ?
Maintenant, ce que j'aimerais faire, c'est créer une requête ou une recherche HQL à l'aide d'un critère pour tous les objets Entity d'un type d'entité spécifique.

Ce La page du forum Hibernate indique que c'est impossible, mais cette page a 18 mois.Quelqu'un peut-il me dire si cette fonctionnalité a été implémentée dans l'une des dernières versions d'Hibernate, ou prévue pour la prochaine version ?

Était-ce utile?

La solution

HQL :

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

Je pense qu'on peut aussi l'écrire comme :

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

Autres conseils

Votre relation est-elle bidirectionnelle, c'est-à-dire EntityType avoir un Entity propriété?Si c'est le cas, vous pouvez probablement faire quelque chose comme entity.Name from EntityType where name = ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top