Я пытаюсь получить только один объект, сопоставленный несколькими столбцами.
Упрощение - у меня есть 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;
}
Может кто-нибудь помочь мне исправить это, пожалуйста.