У меня есть отношения родитель / потомок между двумя таблицами и соответствующее отображение в моих классах Java. Таблицы примерно выглядят так:
A (ref number, stuff varchar2(4000))
B (a_ref number, other number, foo varchar2(200))
и код Java:
@Entity
class A {
@Id
@Column(name = "REF")
private int ref;
@OneToMany
@JoinColumn(name = "A_REF", referencedName = "REF")
private Set<B> bs;
}
@Entity
class B {
@Id
@Column(name = "A_REF")
private int aRef;
@Id
@Column(name = "OTHER")
private int other;
}
Это работает нормально, но я бы хотел добавить фильтр к строкам, которые я извлекаю из дочерней таблицы. Сгенерированный запрос выглядит так:
select a_ref, other, foo from B where a_ref = ?
И я бы хотел, чтобы он был:
select a_ref, other, foo from B where a_ref = ? and other = 123
Дополнительный фильтр быть только именем столбца и жестко заданным значением. Есть ли способ сделать это с помощью аннотаций гибернации?
Я просмотрел @JoinFormula
, но при этом мне всегда нужно ссылаться на столбец имя из родительской таблицы (в атрибуте name
объекта JoinFormula).
Заранее благодарим за любой совет.