У меня есть отношения родитель / потомок между двумя таблицами и соответствующее отображение в моих классах 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
Дополнительным фильтром будет только имя столбца и жестко заданное значение,Есть ли способ сделать это, используя аннотации hibernate?
Я смотрел на @JoinFormula
, но с этим мне всегда приходится ссылаться на имя столбца из родительской таблицы (в атрибуте name
JoinFormula).
Заранее благодарен за любые советы.