首先是WebSys实体
public class WebSys{
private Long id;
private String name;
}
其次是CompanyWebSys实体
public class CompanyWebSys{
private Long id;
@manytoone
@joinColumn(name = "websys_id")
private WebSys webSys;
@manytoone
@joinColumn(name = "website_id")
private Website website;
}
数据库中可能的数据有
id name
1 article
2 manager
3 admin
id webSys_id
1 1
我现在要做的是 查出
[color=red]companyWebsys中还没有的webSys[/color]
也就是webSys中的记录2,3
我想的语句 最简单的
select bean from WebSys as bean where bean.id not in (select c.webSys.id from CompanyWebSys as c where c.website = ?)
然而 hql 不能识别companyWebsys 所以 这个不行
[quote]select bean from WebSys as bean where bean.id not in (select c.webSys.id from CompanyWebSys as c where c.website = ?) [/quote]这个不行?我从数据自己的数据库里找了两个类似的表,实体bean也一样,我用下面这种方式怎么能行?
from WebSys bean where bean.id not in (select webSys.id from CompanyWebSys c inner join c.webSys webSys)
hql与sql的区别是:
hql是对对象进行操作,sql是对数据库进行操作