considerar seguir dos relaciones:Hibernate: ¿Criterios con tabla de unión muchos a muchos?
@Entity class Foo {
@Id id;
@ManyToMany
@JoinTable(name = "ATag",
joinColumns = @JoinColumn(name = "foo_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id"))
Set<Tag> tags;
}
@Entity class Tag {
@Id Long id;
String name;
}
no hay una clase de entidad correspondiente de la tabla de unión ATAG. Ahora, quiero obtener todas las instancias de Foo con Tag llamado 'tag1', ¿es posible usar solo Criteria?
Una sub-consulta puede ser útil, sin embargo, no puedo crear DetachedCriteria para la clase ATag.class que no existe.
Es importante tener en cuenta el uso de la propiedad del objeto y no del objeto en sí. Hibernate using Restrictions no solo usa la clave primaria definida por POJO. Aquí el ejemplo usa el nombre de atributo de las etiquetas de objeto. Perdí el tiempo tratando de establecer todo el objeto en lugar de decir explícitamente qué propiedad debe verificarse bajo el predicado de criterios. –
¿Por qué es necesario usar un alias? ¿No puedes simplemente usar 'tags.name' en lugar de' tagsAlias.name'? – sp00m
Al crear un alias, la combinación interna se produce automáticamente. – derrik