求高手来帮小弟解决一个HQL的问题
时间:2011-12-02
来源:互联网
@Entity
@Table(name = "T_User")
public class User
{
private int id;
private String userCode;
private String userName;
private Set<Role> roles = new HashSet<Role>();
private.......
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },fetch=FetchType.lazy)
@JoinTable(name = "T_User_Role", joinColumns = { @JoinColumn(name = "userId") }, inverseJoinColumns = { @JoinColumn(name = "roleId") })
public Set<Role> getRoles() {
return roles;
}
}
@Entity
@Table(name="t_Role")
public class Role
{
private int id;
private String roleCode;
private String roleName;
private Set<User> users = new HashSet<User>();
......
@ManyToMany(mappedBy="roles",fetch=FetchType.LAZY)
public Set<User> getUsers() {
return users;
}
}
表如下t_role 中间表 t_user_role
+----+------------+ +--------+--------+
----------+-------- | userId | roleId |
| id | roleCode| roleName| remark +--------+--------+
+----+------------+ | 1 | 1 |
+----+------------+ | 2 | 2 |
----------+-------- | 2 | 4 |
| 1 | dfdfdf| NULL | NULL | 3 | 5 |
| 2 | dfdfd| NULL | NULL +--------+--------+
| 3 | NULL |fg
| 4 | NULL |fg
| 5 | NULL |fg
+----+------------+
t_user表
+----------+------------------+-----------+
| id | roleCode| roleName| description |
+----+------------+---------+-------------+-
| 1 | NULL | NULL | NULL | NULL
| 2 | NULL | NULL | NULL | NULL
| 3 | NULL | NULL | NULL | NULL
| 4 | NULL | NULL | NULL | NULL
| 5 | NULL | NULL | NULL | NULL
| 6 | NULL | NULL | NULL | NULL
| 7 | NULL | NULL | NULL | NULL
| 8 | NULL | NULL | NULL | NULL
| 9 | NULL | NULL | NULL | NULL
| 10 | NULL | NULL | NULL | NULL
| 11 | NULL | NULL | NULL | NULL
| 12 | NULL | NULL | NULL | NULL
| 13 | NULL | NULL | NULL | NULL
| 14 | NULL | NULL | NULL | NULL
| 15 | NULL | NULL | NULL | NULL
| 16 | NULL | NULL | NULL | NULL
已知user类的ID=1 ,HQL怎么写与user类的ID=1无联系(无关联)的role记录?
@Table(name = "T_User")
public class User
{
private int id;
private String userCode;
private String userName;
private Set<Role> roles = new HashSet<Role>();
private.......
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE },fetch=FetchType.lazy)
@JoinTable(name = "T_User_Role", joinColumns = { @JoinColumn(name = "userId") }, inverseJoinColumns = { @JoinColumn(name = "roleId") })
public Set<Role> getRoles() {
return roles;
}
}
@Entity
@Table(name="t_Role")
public class Role
{
private int id;
private String roleCode;
private String roleName;
private Set<User> users = new HashSet<User>();
......
@ManyToMany(mappedBy="roles",fetch=FetchType.LAZY)
public Set<User> getUsers() {
return users;
}
}
表如下t_role 中间表 t_user_role
+----+------------+ +--------+--------+
----------+-------- | userId | roleId |
| id | roleCode| roleName| remark +--------+--------+
+----+------------+ | 1 | 1 |
+----+------------+ | 2 | 2 |
----------+-------- | 2 | 4 |
| 1 | dfdfdf| NULL | NULL | 3 | 5 |
| 2 | dfdfd| NULL | NULL +--------+--------+
| 3 | NULL |fg
| 4 | NULL |fg
| 5 | NULL |fg
+----+------------+
t_user表
+----------+------------------+-----------+
| id | roleCode| roleName| description |
+----+------------+---------+-------------+-
| 1 | NULL | NULL | NULL | NULL
| 2 | NULL | NULL | NULL | NULL
| 3 | NULL | NULL | NULL | NULL
| 4 | NULL | NULL | NULL | NULL
| 5 | NULL | NULL | NULL | NULL
| 6 | NULL | NULL | NULL | NULL
| 7 | NULL | NULL | NULL | NULL
| 8 | NULL | NULL | NULL | NULL
| 9 | NULL | NULL | NULL | NULL
| 10 | NULL | NULL | NULL | NULL
| 11 | NULL | NULL | NULL | NULL
| 12 | NULL | NULL | NULL | NULL
| 13 | NULL | NULL | NULL | NULL
| 14 | NULL | NULL | NULL | NULL
| 15 | NULL | NULL | NULL | NULL
| 16 | NULL | NULL | NULL | NULL
已知user类的ID=1 ,HQL怎么写与user类的ID=1无联系(无关联)的role记录?
作者: bingfengfzl 发布时间: 2011-12-02
select * from t_role t where t.id in (select roleId from t_user_role r where r.userId<>1)
作者: hgj1024454508 发布时间: 2011-12-02
转换成hql就好了
作者: hgj1024454508 发布时间: 2011-12-02
引用 1 楼 hgj1024454508 的回复:
select * from t_role t where t.id in (select roleId from t_user_role r where r.userId<>1)
select * from t_role t where t.id in (select roleId from t_user_role r where r.userId<>1)
表名换成实体类名列名换成字段名称不就OK了吗???
作者: hzw2312 发布时间: 2011-12-02
from role r where r.id not in ( select u.roles.id from user u where u.id =1 )
LZ试试?
不知道行不行 呵呵 这个 机器上没环境
LZ试试?
不知道行不行 呵呵 这个 机器上没环境
作者: happly123 发布时间: 2011-12-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28