这条sql语句怎么在hibernate3中执行

dyw31415926 2007-11-07 03:08:57
select * from customer where customerid in ( select customerid from tb_domain where domainid like '%www.rytest14%')

表的结构如下:
表customer
customerid
customername
hibernate映射为Customer
DAO操作类为 CustomerDAO

表 tb_domain
domainid
customerid
hibernate映射为 TbDomain
DAO操作类为 TbDomainDAO

哪为朋友有空帮一下忙,看看这个函数该怎么写呢,之前都是只涉及到一个表的,就用
***DAO.getSession.createQuery(***) 就可以了,突然遇到两个表的,不知道要怎么做才能得到结果呢
public List query(int key){
//有就返回一个ArrayList或其他的
//没有就返回null
}
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhb_821012 2007-11-08
  • 打赏
  • 举报
回复
语句好写,主要是看你映射文件怎么写了

from Customer c right join c.tb_domain c_t(注意:这是你在Customer 映射文件里的tb_domain的名字)where c =c_t.customerid and c_t.domainid like '%www.rytest14%'

大体就这么了吧,好久不用了,呵呵
主要你把映射文件写好了
hibernate的方便之处就在于写好映射文件以后就不用亲自处理表与表之间的关系了,你要还那么写还不如用原生sql了,写好映射文件就ok

dyw31415926 2007-11-08
  • 打赏
  • 举报
回复
from Customer where customerid in (select customerid from tb_domain where domainid like '%www.rytest14% ')
=================================================
org.hibernate.hql.ast.QuerySyntaxException: tb_domain is not mapped. [from com.ry800.webcs.hibernate.Customer where customerid in (select customerid from tb_domain where domainid like ?)]

gougou8180 朋友的做法编译不过去,因为只简单的将customer改成 Customer
后面还有tb_domain呢
dyw31415926 2007-11-08
  • 打赏
  • 举报
回复
to gosure:
customer 与 tb_domain是多对一吧?
============================
不是,反过来
customer 与 tb_domain是一对多的guan关系
一个 customer可以有多个tb_domain

正如现实中,一个人可以同时注册多个域名,但一个域名的注册者只能有一个
gougou8180 2007-11-07
  • 打赏
  • 举报
回复
from Customer where customerid in (select customerid from tb_domain where domainid like '%www.rytest14% ')
gosure 2007-11-07
  • 打赏
  • 举报
回复
customer 与 tb_domain是多对一吧?
if (yes)
{
HQL : from Customer as c where c.tb_domain.domainid like '%www.rytest14% '
}
else
{
sql = select * from customer where customerid in ( select customerid from tb_domain where domainid like '%www.rytest14% ')
SQLQuery q = s.createSQLQuery(sql);
}
gongyali2005 2007-11-07
  • 打赏
  • 举报
回复
你可以看看HIBERNATE关于联合查讯的部分.我是菜鸟级的.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧