Существует ли способ сказать, в спящем режиме для обертывания столбца в to_char при использовании его, чтобы соединить с другой таблицей или с другой стороны преобразовать ЧИСЛО в VARCHAR? У меня есть ситуация, где у меня есть таблица, которая содержит универсальный столбец ключа типа VARCHAR, который хранит идентификатор другой таблицы, которая является Числом. Я получаю исключение SQL, когда В спящем режиме, выполняет SQL, который оно генерирует который использование '=' для сравнения двух столбцов.
Спасибо...
P.S. Я знаю, что это не идеально, но я застреваю со схемой, таким образом, я должен иметь дело с нею.
Это должно быть возможно с помощью формулы в вашем 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;