hibernate:怎么写这样一个 hql语句
有两张表;users(id,name,password)等信息,还有一个表是schools(schools_id,school_name,user_id),其中user的...
有两张表;users(id,name,password)等信息,还有一个表是schools(schools_id,school_name,user_id),其中user的id是school表中的外键,也就是schools中的user_id!
现在我有个问题,就是当Hibernate把上面的两张表转换成对象时,
class Users{
private id;
private name;
private password;
private Set schools = new HashSet(0);
……
}
class Schools{
private schoolId;
private schoolName;
private Users users;
……
}
我现在 想根据学校的school_id得到users的信息,请问我的hql语句该怎么写呢!麻烦大家啊,比较急,谢谢各位! 没分了,就这么点了!
谢谢各位!呵呵,分还是很多的,别csdn上复制过来的!是csdn分不多!写的时候没注意,漏了类型! 展开
现在我有个问题,就是当Hibernate把上面的两张表转换成对象时,
class Users{
private id;
private name;
private password;
private Set schools = new HashSet(0);
……
}
class Schools{
private schoolId;
private schoolName;
private Users users;
……
}
我现在 想根据学校的school_id得到users的信息,请问我的hql语句该怎么写呢!麻烦大家啊,比较急,谢谢各位! 没分了,就这么点了!
谢谢各位!呵呵,分还是很多的,别csdn上复制过来的!是csdn分不多!写的时候没注意,漏了类型! 展开
4个回答
展开全部
感觉你的表建的不规范... 应该User表中有School的id 那样才会有一个学校对应多个user.. 个人看法..
定义了保存,修改,删除,查找等方法的 类为 myDao
则有:
myDao dao=new myDao();
School school=dao.findById(School.class,school_id);
User user=school.getUsers();
------------------------------
myDao里的findById()方法定义如下:
public Object findById(Class cla,Integer id)
{
Session session = HibernateSessionFactory.getSession();
Object o = session.get(cla, id);
session.close();
return o;
}
我知道的就这些了, 希望能帮到你..呵呵..
定义了保存,修改,删除,查找等方法的 类为 myDao
则有:
myDao dao=new myDao();
School school=dao.findById(School.class,school_id);
User user=school.getUsers();
------------------------------
myDao里的findById()方法定义如下:
public Object findById(Class cla,Integer id)
{
Session session = HibernateSessionFactory.getSession();
Object o = session.get(cla, id);
session.close();
return o;
}
我知道的就这些了, 希望能帮到你..呵呵..
展开全部
hql语句还是 from Schools where schoolId = ?
你只要在Schools类的Hibernate配置文件里的Users users注册标签里加上lazy=false 就可以了 这样你Schools表他会自动的把所有有关系的别的表的值也查出来,调用的时候只要用返回的List 的名字.users.你要的users表里的东西就可以了。
你只要在Schools类的Hibernate配置文件里的Users users注册标签里加上lazy=false 就可以了 这样你Schools表他会自动的把所有有关系的别的表的值也查出来,调用的时候只要用返回的List 的名字.users.你要的users表里的东西就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先取得school对象,根据hibernate的延迟加载,schools和users 表是one-to-more关系,
取得school对象,
hql语句:select s from Schools s where school_id=班级ID信息
取出一个Schools 对象,调用Schools 对象的getUsers()属性取得Users对象。
你上面写的两个类是错误的,每个属性都没数据类型。
取得school对象,
hql语句:select s from Schools s where school_id=班级ID信息
取出一个Schools 对象,调用Schools 对象的getUsers()属性取得Users对象。
你上面写的两个类是错误的,每个属性都没数据类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-05-04
展开全部
from Schools s join fetch s.users where s.schoolId=?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询