JPA/Hibernate-внутреннее соединение для объединенных имен столбцов

После нескольких Гуглов я не могу найти рабочее решение для сопоставления внутреннего соединения, которое описано ниже в SQL:

select i.label, i.cat_label from category cat
inner join items it on (it.context_code||'.'||it.label_code)=cat.cat_label

Как определить OneToMany в категории сущность ? Ho написать критерии запроса ?
Я попробовал следующим образом, без успеха:

Category.java

 @OneToMany
    @JoinColumnOrFormula(formula = @JoinFormula(value = "CONTEXT_CODE || . || LABEL_CODE"))
    private List <Items> items;


Item.java

 @Formula(value = "CONTEXT_CODE || . || LABEL_CODE")
    private String contextCodeLabelCode;

1 ответ

  1. Нельзя использовать onпредложение using JPQL. Это разрешено в HQLдля гибернации 5.1.

    Если вам нужно использоватьJPQL, вы можете попробовать использовать cross join(декартово произведение)

    select it from category cat, items it where ...