Таблицы JPA или Hibernate - Joining на столбцах различных типов

Существует ли способ сказать, в спящем режиме для обертывания столбца в to_char при использовании его, чтобы соединить с другой таблицей или с другой стороны преобразовать ЧИСЛО в VARCHAR? У меня есть ситуация, где у меня есть таблица, которая содержит универсальный столбец ключа типа VARCHAR, который хранит идентификатор другой таблицы, которая является Числом. Я получаю исключение SQL, когда В спящем режиме, выполняет SQL, который оно генерирует который использование '=' для сравнения двух столбцов.

Спасибо...

P.S. Я знаю, что это не идеально, но я застреваю со схемой, таким образом, я должен иметь дело с нею.

10
задан Pascal Thivent 26 June 2010 в 00:17
поделиться

1 ответ

Это должно быть возможно с помощью формулы в вашем many-to-one. Из раздела 5.1.22. Элементы столбцов и формул (решение также упоминалось в этом предыдущем ответе):

столбец и формула атрибуты могут даже могут быть объединены в одном и том же свойство или отображение ассоциации, чтобы выразить, например, экзотическое соединение условия.


 
 'MAILING'

С аннотациями (если вы используете Hibernate 3.5.0-Beta-2+, смотрите HHH-4382):

@ManyToOne
@Formula(value="( select v_pipe_offerprice.offerprice_fk from v_pipe_offerprice where v_pipe_offerprice.id = id )")
public OfferPrice getOfferPrice() { return offerPrice; } 

Или, возможно, проверьте @JoinColumnsOrFormula:

@ManyToOne
@JoinColumnsOrFormulas(
{ @JoinColumnOrFormula(formula=@JoinFormula(value="SUBSTR(product_idnf, 1, 3)", referencedColumnName="product_idnf")) })
@Fetch(FetchMode.JOIN)
private Product productFamily;
15
ответ дан 3 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: