¿Cómo defino múltiples condiciones en una unión JPA / Ebean?

Ok, digamos que tengo tablas de orden y artículos. Así es como se describen los artículos en mi clase de orden:

@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;

Esto funciona bien. Pero veamos que hay una fecha en la tabla puente llamada MY_ORDER_ITEM_BRIDGE.expiration_date.

Quiero cambiar la definición para incluir solo los elementos con fecha de caducidad que aún no se ha producido.

Así que quiero que el SQL generado se vea como:

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;

Estoy usando Ebean, Play Framework 2.1.3. Gracias por cualquier ayuda.

ACTUALIZAR: Alternativamente, también podría ser una segunda condición en cualquiera de las uniones:

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

(Si es posible, me gustaría hacer esto en la definición de clase no en SQL sin formato)

Respuestas a la pregunta(2)

Su respuesta a la pregunta