JPQL запрашивает коллекцию не-объектов - PullRequest
3 голосов
/ 16 февраля 2012

Я хочу сделать JPQL-запрос с набором не сущностей. Это моя сущность таблицы:

@Entity
@Table(name = "ct_table")
public class Table {
...

@CollectionOfElements(fetch = FetchType.EAGER)
@JoinTable(name = "ct_table_result", joinColumns = @JoinColumn(name = "tableId"))
@MapKey(columns = { @Column(name = "label") })
@Column(name = "value")
private Map<String, String> tableResults;
...

тогда я пытаюсь сделать запрос, подобный этому

select count(*) from table where table.tableResults['somekey'].value='somevalue'

но я получаю следующее исключение:

Cannot create element join for a collection of non-entities!

Любое предложение ??

спасибо за ваше время

EDIT:

Я использую JPA 1 и Hibernate 3.3. Стандартные библиотеки в JBoss 5

1 Ответ

6 голосов
/ 16 февраля 2012

Спецификация JPA 2 (стр. 139) определяет функции KEY() и VALUE() для доступа к ключу и значению коллекции элементов со значением карты:

select count(t.id) from Table t 
where KEY(t.tableResults) = 'somekey' and VALUE(t.tableResults) = 'somevalue'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...