Сопоставление OneToMany с дополнительным фиксированным где - PullRequest
1 голос
/ 16 января 2012

Предположим, у меня есть следующая таблица:

PARAMETER
 - NAME         varchar2(10)
 - TABLE_NAME   varchar2(50)
 - REF_TABLE_ID number(10)
 - VALUE        varchar2(100)

Эта таблица содержит значения параметров для других таблиц, например, если у меня есть таблица по имени EMPLOYEE и я хочу добавить параметр сотруднику с идентификатором 1 Таблица PARAMETER будет иметь следующую строку:

insert into PARAMETER (NAME, TABLE_NAME, REF_TABLE_ID, VALUE) values ('PARAM1', 'EMPLOYEE', 1, 'Value of PARAM1');

Конечно, это не навязывает никаких ограничений целостности, но эту таблицу PARAMETER нельзя изменить.

Теперь я хочу отобразить эту таблицу PARAMETER в моем СОТРУДНИКЕ сущности, мне нужно что-то заменить (@SomeAnnotation)

public class Employee {

  @OneToMany
  @JoinColumn(name="REF_TABLE_ID")
  @SomeAnnotation("and table_name = 'EMPLOYEE'")
  private List<Parameter> parameters;

  ... etc

}

Сейчас я использую аннотацию @PostLoad для загрузки всех параметров PARAMETER, связанных с этой сущностью, но я бы предпочел, если бы мог как-нибудь сопоставить таблицу параметров.

Другая идея, которая у меня возникла, - создать VIEW, где я фильтрую таблицу PARAMETER для TABLE_NAME = 'EMPLOYEE', но это означает, что что мне нужно будет создать представление для всех моих таблиц в БД и их слишком много.

есть мысли?

1 Ответ

1 голос
/ 16 января 2012

Вы ищете аннотацию @ Где . Вам не нужно and в предложении, AFAIK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...