Критерии JPA2: как избежать перекрестного соединения с помощью path.get()

Если у вас есть эта сущность:

@Entity
public class A {

    @ManyToOne
    @JoinColumn(name = "bField", nullable = true)
    private B myBObject;

}

И у меня есть общий генератор критериев, который сделает это:

Root<A> root = criteria.from(A.class);
root.get("myBObject").get("aFieldInB");

Проблема в следующем: сгенерированный sql будет содержать CROSS JOIN между A и B. Но я бы хотел, чтобы сгенерированный sql содержал LEFT JOIN между A и B.

Как я могу это сделать?


person user1180339    schedule 10.04.2013    source источник
comment
попробуйте Join‹A, B› b = root.join(myBObject, JoinType.LEFT);   -  person user902383    schedule 10.04.2013
comment
Конечно, я это знаю... но мой объект критериев сгенерирован!   -  person user1180339    schedule 10.04.2013
comment
Вы когда-нибудь находили решение?   -  person Øystein Amundsen    schedule 14.09.2018
comment
Так кто-нибудь из вас нашел решение этой проблемы? :/   -  person Error    schedule 09.04.2020


Ответы (1)