Как определить несколько условий в соединении JPA / Ebean

Хорошо, допустим, у меня есть таблицы заказов и предметов. Вот как элементы описаны в моем классе заказа:

@ManyToMany(cascade=CascadeType.PERSIST)
@JoinTable(name="MY_ORDER_ITEM_BRIDGE",
joinColumns=@JoinColumn(name="bridge_order_id",referencedColumnName = "order_order_id"),
inverseJoinColumns = @JoinColumn(name="bridge_item_id", referencedColumnName="item_item_id"))
private List<Item> items;

Это отлично работает. Но давайте представим, что в таблице мостов есть дата, которая называется MY_ORDER_ITEM_BRIDGE.expiration_date.

Я хочу изменить определение, чтобы включить только элементы с expiration_date, которые еще не произошли.

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

SELECT *
FROM order o
join my_order_item_bridge b
on b.bridge_order_id = o.order_order_id
join item i
on i.item_item_id = b.bridge_item_id
where b.expiration_date < sysdate;

Я использую Ebean, Play Framework 2.1.3. Спасибо за любую помощь.

ОБНОВИТЬАльтернативно, это также может быть вторым условием для любого из объединений:

SELECT *
FROM order o
join my_order_item_bridge b
on b.bridge_order_id = o.order_order_id
and b.expiration_date < sysdate
join item i
on i.item_item_id = b.bridge_item_id

(Если возможно, я хотел бы сделать это в определении класса, а не в сыром SQL)

Ответы на вопрос(2)

Ваш ответ на вопрос