当前位置: 代码迷 >> J2EE >> hql 查询解决思路
  详细解决方案

hql 查询解决思路

热度:58   发布时间:2016-04-22 00:29:29.0
hql 查询
mysql数据库中有张表rela 其中有2个字段 一个是user_id 另一个是friend_id这两个字段在程序中都是User实体。我想写一个函数是boolean isAlreadyFriend(int user_id, int friend_id) 来判断这两个用户是否已经为好友。我是hibernate的初学者,尝试了很多次都没成功,希望能有高人帮我完成这个函数。

------解决方案--------------------
这个应该不是很难实现,就看逻辑清晰不了。
首先,你这个函数定义是可以的,就是传入用户ID和朋友ID,但是个人感觉你只需要查询Friend表就可以了,我想你Firend表最起码的字段应该是user_id和firend_id吧?
那么直接写hql为"select user_id from USERS A, FIRENDS B where B.user_id = " + firend_id + " and B.Firend_id = " + firend_id + " and A.user_id = B.user_id";
如果结果为1代表是好友,如果结果小于1代表不是好友。
上面的语句建立在用户对象类为Users,好友类为Fiends上
希望可以帮助到你。
------解决方案--------------------
是说按照user_id查询看friend_id有没有吗?

public boolean isAlreadyFriend(int user_id, int friend_id){
boolean isExists = true;
Session session = null;
try{
session = HibernateUtilLife.currentSession();
if(session != null){
String hql = "from User where userId = " + user_id + " and friendId = " + friend_id;
Query query = session.createQuery(hql);
List list = query.list();
//System.out.println("list: " + list.size());
if(list.size()<=0)
isExists = false;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
HibernateUtilLife.closeSession(session);
}
return isExists;
}
  相关解决方案