mysql数据库中有张表rela 其中有2个字段 一个是user_id 另一个是friend_id这两个字段在程序中都是User实体。我想写一个函数是boolean isAlreadyFriend(int user_id, int friend_id) 来判断这两个用户是否已经为好友。我是hibernate的初学者,尝试了很多次都没成功,希望能有高人帮我完成这个函数。
解决方案 »
- xhtmlrenderer将HTML转PDF 的棘手问题
- EXTJS GridPanel排序
- ssh集成出现异常 大家帮我看看 java.lang.ClassCastException: java.lang.Long
- Hibernate中可以把一张表的几个属性封装成一个list么?在线等!
- hibernate映射文件的问题,高手帮忙,应该不是很难的……
- 一次性插入十万条记录,如何控制在1秒之内?
- apche和tomcat都安装在一台机子上,都用80口行吗,他们必须整合吗?
- 数据大问题
- 为什么我的socket服务程序会停止服务???
- unicode,utf-8,utf-16,unicode escape sequence 等有什么区别?
- OpenSessionInViewFilter在查询完之后不提交事务?
- 请教 SSH中文乱码问题
首先,你这个函数定义是可以的,就是传入用户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上
希望可以帮助到你。
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;
}