Ответ 1
HQL поддерживает CAST
(если базовая база данных поддерживает ее), вы можете использовать ее:
select a.id as id,a.name as name,b.address as address
from Personal as a,Home as b
where cast(a.id as string) = b.studid
См. также:
Мне нужно объединить 2 таблицы с помощью hql, оба имеют общий столбец, но table1
общий столбец integer
и table2
общий столбец String
Например,
select a.id as id,a.name as name,b.address as address
from Personal as a,Home as b
where a.id=b.studid
Здесь a.id
является integer
, а b.stduid
является String
, но данные обоих столбцов одинаковы.
Как я могу получить результат запроса с помощью запроса hql?
HQL поддерживает CAST
(если базовая база данных поддерживает ее), вы можете использовать ее:
select a.id as id,a.name as name,b.address as address
from Personal as a,Home as b
where cast(a.id as string) = b.studid
См. также:
Вам действительно нужно подумать, почему вам нужно объединить два объекта по свойствам разных типов. Скорее всего, это предполагает, что некоторые из объектов необходимо реорганизовать, что может включать изменение типов данных для столбцов базовых таблиц db. Если модель правильная, нет необходимости перекручивать Hibernate.
Только что заметил, что вы используете JPA, там вы не можете отличать или конвертировать datatpes. В языке запросов можно сравнивать только значения одного и того же типа! читать http://download.oracle.com/javaee/5/tutorial/doc/bnbuf.html#bnbvu