Сопоставить последнюю запись с классом объекта с помощью аннотации гибернации, используя условие - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь получить только один объект, сопоставленный несколькими столбцами.

Упрощение - у меня есть 2 таблицы:

1) dict_warehouse_item со столбцами: item_id, date, sequence_prefix и sequence_nb .. .

2) warehouse_document_item со столбцами: ... document_id, item_prefix и item_nb ...

В таблице warehouse_document_item у меня нет item_id, но у меня есть item_prefix и item_nb. К сожалению, это может указывать на многие версии элемента. Неважно, какой из них я выберу, но мне нужно, чтобы он был привязан только к одному. Допустим, я хочу, чтобы он был самым новым (date).

При поиске кода выдается ошибка:

"org.hibernate.mapping. Формула не может быть приведена к org.hibernate.mapping.Column "

@ManyToOne(fetch=FetchType.LAZY)
@JoinFormula(value = "SELECT wi.item_id FROM dict_warehouse_item wi 
 WHERE (wi.sequence_prefix = item_prefix AND wi.sequence_nb = item_nb) 
 ORDER BY wi.date DESC LIMIT 1", referencedColumnName = "item_id")
public DictWarehouseItem getDictWarehouseItem() {
    return this.dictWarehouseItem;
}

Может кто-нибудь помочь мне исправить это, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...