ver*_*ver 38 java hibernate hql
我需要使用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
Run Code Online (Sandbox Code Playgroud)
这里a.id是一个integer同时b.stduid是一个string,但两列的数据是一样的.
如何使用hql查询获取查询结果?
axt*_*avt 67
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
Run Code Online (Sandbox Code Playgroud)
也可以看看:
你真的需要思考为什么你需要通过不同类型的属性加入两个实体.很可能它表明某些实体需要重构,这可能包括更改基础数据库表的列的数据类型.如果模型是正确的,则不需要扭曲Hibernate.
我必须像这样将它转换为 String :
@Query( value = "select new com.api.models.DResultStatus("+
"cast(ds.demoId as java.lang.String),cast(ds.comp as java.lang.String),cast(ds.dc as java.lang.String),cast(be.buildUrl as java.lang.String)")
Run Code Online (Sandbox Code Playgroud)
刚刚注意到您正在使用 JPA,因此您无法转换或转换数据类型。在查询语言中,只能比较相同类型的值!阅读http://download.oracle.com/javaee/5/tutorial/doc/bnbuf.html#bnbvu
| 归档时间: |
|
| 查看次数: |
73148 次 |
| 最近记录: |