JPA 2.1 был выпущен недавно, и новая функция, похоже, находится на определенных условиях.

Я обнаружил, что это упоминается в некоторых блогах и Документация Eclipselink.

Как я могу это использовать?

У меня есть две сущности, связанные друг с другом с помощью @OneToMany и @JoinColumn. Однако мне нужно отфильтровать некоторые вторые сущности.

Пример блога показывает:

SELECT s.name, COUNT(p)
  FROM Suppliers s LEFT JOIN s.products p
    ON p.status = 'inStock'
 GROUP BY s.name

Как я могу использовать это для своих сопоставлений?

0
Udo Held 11 Июл 2013 в 16:04
Вы, кажется, ответили на свой вопрос
 – 
gerrytan
11 Июл 2013 в 16:50

1 ответ

Лучший ответ

Предложение ON предназначено для запросов, а не для сопоставлений.

Если вы хотите добавить к сопоставлению дополнительные критерии, это не то, что JPA поддерживает в спецификации.

С EclipseLink вы можете сделать это с помощью DescriptorCustomizer и установки selectionCriteria для сопоставления.

Видеть, http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria

1
James 11 Июл 2013 в 16:50
Я уже догадался, что это два очень разных животных. Я хотел остаться свободным для вещей, зависящих от реализации, но я посмотрю на это.
 – 
Udo Held
11 Июл 2013 в 17:13