Bevraagteken versamelings van tipe waarde in die kriteria API in Hibernate
Vra
In my databasis, ek het 'n entiteit tafel (kom ons noem dit Entiteit). Elke entiteit kan 'n aantal tipes entiteit het, en die versameling van tipes entiteit is staties nie. Daar is dus 'n verbinding tafel wat rye van die entiteit ID-en die naam van die tipe entiteit bevat. In my kode, EntityType is 'n enum, en Entiteit is 'n Hibernate-gekarteer klas.
in die Entiteit kode, die kartering lyk soos volg:
@CollectionOfElements
@JoinTable(
name = "ENTITY-ENTITY-TYPE",
joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
return entityTypes;
}
O, het ek al gesê ek gebruik notas?
Nou, wat ek wil doen, is om te skep 'n HQL navraag of soek met behulp van 'n kriteria vir al Entiteit oogmerke van 'n spesifieke tipe entiteit.
dit bladsy in die Hibernate forum sê dit is onmoontlik, maar dan hierdie bladsy is 18 maande oud. Kan iemand vir my sê as hierdie funksie het in een van die nuutste weergawes van Hibernate geïmplementeer is, of beplan vir die komende vrystelling?
Oplossing
HQL:
select entity from Entity entity where :type = some elements(entity.types)
Ek dink dat jy ook kan skryf dit wil hê:
select entity from Entity entity where :type in(entity.types)
Ander wenke
Is jou verhouding tweerigting, dit wil sê, doen EntityType
n Entity
eiendom het? Indien wel, kan jy waarskynlik iets soos entity.Name from EntityType where name = ?
doen