2 bixiaoshuan bixiaoshuan 于 2014.07.23 20:24 提问

跪求高手指导hibernate此hql 怎么写

hql = "select distinct u from User " 跪求高手指导此hql 怎么写
用hql查询User 的时候, 只(ˇ?ˇ) 想~查出User 以及User .Station.id、User .Station.name、.User Station.dept,以及User Station.dept.id、User Station.dept.name 因为不这样的话 执行效率太低了。页面刷新很慢%>_<%
[code=java]
public class User implements Serializable{

private static final long serialVersionUID = 7259027197507200040L;
private String id;
private String username;
private String password;
private int status;
private UserInfo userInfo;
private Set<Station> stations;

private Set<Role> roles;

public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
public UserInfo getUserInfo() {
    return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
    this.userInfo = userInfo;
}

public Set<Station> getStations() {
    return stations;
}
public void setStations(Set<Station> stations) {
    this.stations = stations;
}

public Set<Role> getRoles() {
    return roles;
}
public void setRoles(Set<Role> roles) {
    this.roles = roles;
}
public int getStatus() {
    return status;
}
public void setStatus(int status) {
    this.status = status;
}

[/code]
[code=java]
public class Station implements Serializable{

private static final long serialVersionUID = 1L;
private String id;
private String name;
private String descContent;
private Date createTime;
private int status;
private Dept dept;

private Set<User> users;

private Set<DimTag> dimTags;

public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getDescContent() {
    return descContent;
}
public void setDescContent(String descContent) {
    this.descContent = descContent;
}
public Date getCreateTime() {
    return createTime;
}
public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}
public Dept getDept() {
    return dept;
}
public void setDept(Dept dept) {
    this.dept = dept;
}
public Set<User> getUsers() {
    return users;
}
public void setUsers(Set<User> users) {
    this.users = users;
}
public Set<DimTag> getDimTags() {
    return dimTags;
}
public void setDimTags(Set<DimTag> dimTags) {
    this.dimTags = dimTags;
}
public int getStatus() {
    return status;
}
public void setStatus(int status) {
    this.status = status;
}

}

[/code]
[code=java]
public class Dept implements Serializable{

private static final long serialVersionUID = 1L;
private String id;
private String name;

private Dept parent;
private String bh;
private String descContent;
private int status;
private Set<Station> station;

public Set<Station> getStation() {
    return station;
}
public void setStation(Set<Station> station) {
    this.station = station;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public Dept getParent() {
    return parent;
}
public void setParent(Dept parent) {
    this.parent = parent;
}
public String getBh() {
    return bh;
}
public void setBh(String bh) {
    this.bh = bh;
}
public String getDescContent() {
    return descContent;
}
public void setDescContent(String descContent) {
    this.descContent = descContent;
}
public int getStatus() {
    return status;
}
public void setStatus(int status) {
    this.status = status;
}

}

[/code]
跪求高手指导hibernate此hql 怎么写

1个回答

qwuack
qwuack   2014.07.23 23:21

可以返回station再拿出来处理,select distinct u.stations from User u
楼主似乎并没有设置懒加载,如@ManyToOne(fetch = FetchType.LAZY)
请楼主恶补下

qwuack
qwuack 我去。。查出来后用List<Map>接收不就好了。。。。。。。
接近 4 年之前 回复
bixiaoshuan
bixiaoshuan 你这样查出来的结果结构变了 用这种 select new Table(name,sex) from Table where nid= "要是查出来的结果 还是user里面 stations 这个结果 该怎么弄
接近 4 年之前 回复
qwuack
qwuack select distinct s.id,s.name,d.id,d.name from User u left join u.stations s left join s.dept d
接近 4 年之前 回复
bixiaoshuan
bixiaoshuan 我要查用户User 但是查出来的User.stations 只需要查出User.stations.id,User.stations.name
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Hibernate的Hql语句使用in关键字
Hibernate的Hql语句使用in关键字
hibernate中用hql怎么执行delete的sql语句
public void testDml(){ Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.getTransaction(); session.beginTransaction();
Hibernate的HQL简单查询语句
前言     不管数据库用的是什么类型,对于查询语句来说,我们总是习惯了SQL语句。它之所以能够屹立不倒,一方面已成为了习惯,一方面确实功能强大。Hibernate相对于其他ORM实现来说,数据查询是它独特的亮点。它所提供的HQL,类似于SQL语句,但是却比SQL语句灵活。它跟SQL语句有很多相似的地方,是因为这样的话更容易被接受。 HQL查询 简单属性查询
Hibernate HQL like 语句的用法
<br />String str = "中文字符串";<br />String hql = "FROM Table AS t WHERE t.field like '%" + str + "%'";<br /><br />Query query = getSession().createQuery(hql);<br />query.list();<br /><br />使用这种形式传入参数str, 会导致控制台输出:<br />FROM Table AS t WHERE t.field like '% ??
hibernate HQL添加语句
hibernate HQL添加语句怎么写,除了save();方法,难道没有像SQL那样insert into student name ='haha';这样的添加语句吗? 最佳答案: 那么多人说了半天都没有解决楼主所提问题,实际上这个问题我已经说个多次了,现在让我再一次来回复楼主的问题吧: 使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....val
hibernate hql语句in的使用和占位符
平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。     我最常用的情况有2种:    1、in后是个子查询,如 FROM A WHERE A.ID IN (SELECT B.AID FROM B WHERE ...),这样是没问题的,如果A.ID 和B.AID是相同的数据类型。    2、in的参数如果已知了,可以直接拼接在后面 如FR
Hibernate中的HQL模糊查询语句
@Query("SELECT entity FROM PartsChange entity WHERE entity.num like ?") List findByNumLike(String yearStr); 注意: %放在传入的字符串参数中; 占位符不能带数字;
hibernate 直接执行hql语句的代码写法
用Hibernate直接执行hql语句,不直接操纵对象   例子一:public int executeSQL(String sql, Map params) { SQLQuery sqlquery = getSession().createSQLQuery(sql); if (params != null) { sqlq
Hibernate 中的hql语言的增删改查
一  增加 getSession().save(entity) 二  删除 1 String hql = " DELETE FROM Student dm WHERE  dm.id = ? "; this.delete(hql,stu.getId()); 2 Transaction trans=session.beginTransaction();    String
hql语句不等于 的写法
在使用hibernate写hql语句的时候,我相信有会用到不等于这个条件的时候,当然大部分都是用在了判断不等于空字符串的情况,至于hql语句的写法,其实和一般的sql语句没有什么区别,你可以使用!=,也可以使用 ''