Как заменить @joincolumn на жесткое значение?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как заменить @joincolumn на жесткое значение?

Сообщение Anonymous »

Для получения дополнительного контекста, пожалуйста, посмотрите мой другой вопрос. Код PK является составным (домен, код), потому что в нем перечислены множество различных кодовых доменов, однако коды, которые идут в классе/таблице работников, находятся в пределах одного домена, что устраняет необходимость иметь поле домена в классе/Таблица работника/таблица (Потому что это всегда было бы одинаково).

Могу ли я присоединиться к employee к code с помощью поля кода В таблице сотрудников и жестко -кодированном значении (например, emp_type ) вместо избыточного столбца?

Если мой < Em> Сотрудник класс/таблица действительно имела этот избыточный столбец, я бы присоединился к нему так:

Код: Выделить всё

@JoinColumns({
@JoinColumn(name = "EMP_TYPE_CODE", referencedColumnName = "CODE"),
@JoinColumn(name = "DOMAIN", referencedColumnName = "DOMAIN)})
@ManyToOne(optional = false)
private Code sharedStatute;
< /code>

Но я действительно не хочу иметь этот дополнительный столбец в DB и в классе, потому что он всегда будет одинаковым. < /p>

То, что я пытаюсь достичь, было бы эквивалентно следующим в SQL: < /p>

SELECT e.emp_id, e.first_name, e.last_name, c.description as emp_type
FROM Employee e JOIN Code c
ON e.emp_type_code = c.code
WHERE c.domain = 'EMP_TYPE'
в отличие от добавления полевого домена в таблице сотрудников и заполнение каждой отдельной записи с одинаковым значением ('emp_type'), а затем выполнение:

Код: Выделить всё

SELECT e.emp_id, e.first_name, e.last_name, c.description as emp_type
FROM Employee e JOIN Code c
ON e.emp_type_code = c.code
AND e.domain = c.domain
Первый вариант более эффективен, поскольку избавляет меня от необходимости иметь избыточное поле. Итак, я пытаюсь сделать то же самое, но в JPA.

Некоторые из вас могут сказать что-то вроде «почему бы не создать отдельный таблица поиска для каждого кода», но я думаю, что это ужасная идея, которая приводит к загромождению таблиц БД и соответствующих объектов приложения. Гораздо лучше иметь единую таблицу поиска кода, разделенную по типу кода (или домену).

Подробнее здесь: https://stackoverflow.com/questions/278 ... oded-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»