Запрос к коллекциям типа значения в Criteria API в Hibernate - PullRequest
0 голосов
/ 08 сентября 2008

В моей базе данных есть таблица сущностей (назовем ее Entity). Каждый объект может иметь несколько типов объектов, а набор типов объектов является статическим. Следовательно, существует соединительная таблица, которая содержит строки с идентификатором объекта и именем типа объекта. В моем коде EntityType - это перечисление, а Entity - это класс, отображаемый в Hibernate.
в коде сущности отображение выглядит так:

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

О, я упоминал, что я использую аннотации?
Теперь я хотел бы создать HQL-запрос или поиск с использованием критериев для всех объектов Entity определенного типа.

Эта страница на форуме Hibernate говорит, что это невозможно, но тогда этой странице 18 месяцев. Может кто-нибудь сказать мне, была ли эта функция реализована в одном из последних выпусков Hibernate, или планируется на следующий выпуск?

Ответы [ 2 ]

1 голос
/ 10 сентября 2008

HQL:

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

Я думаю, что вы также можете написать это как:

select entity from Entity entity where :type in(entity.types)
0 голосов
/ 08 сентября 2008

Являются ли ваши отношения двунаправленными, т. Е. Имеет ли EntityType свойство Entity? Если это так, вы, вероятно, можете сделать что-то вроде entity.Name from EntityType where name = ?

...