Hqlを使用して2つのテーブルを結合する必要があります。両方とも共通の列を持っていますが、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
以下も参照してください:
異なるタイプのプロパティで2つのエンティティを結合する必要がある理由を本当に考える必要があります。ほとんどの場合、エンティティの一部をリファクタリングする必要があることを示唆しています。これには、基礎となるdbテーブルの列のデータ型の変更が含まれる場合があります。モデルが正しい場合、Hibernateをひねる必要はありません。
あなたがJPAを使用していることに気づいただけで、そこでデータ型をキャストしたり変換したりすることはできません。クエリ言語では、同じ型の値のみを比較できます!読み取り http://download.Oracle.com/javaee/5/tutorial/doc/bnbuf.html#bnbv