mysql数据库中有张表rela 其中有2个字段 一个是user_id 另一个是friend_id这两个字段在程序中都是User实体。我想写一个函数是boolean isAlreadyFriend(int user_id, int friend_id) 来判断这两个用户是否已经为好友。我是hibernate的初学者,尝试了很多次都没成功,希望能有高人帮我完成这个函数。

解决方案 »

  1.   

    这个应该不是很难实现,就看逻辑清晰不了。
    首先,你这个函数定义是可以的,就是传入用户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上
    希望可以帮助到你。
      

  2.   

    是说按照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;
    }