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;
}