Java Hibernate Annotation (@JoinTable, @Filter)
===

I've recently started using Hibernate and am trying to get my head around all the annotations and ensure I do things properly. I have two tables 'user' and 'user_friends' that are similar to the below

    +------+------+-------+------+
    | id   | name | email | etc. |
    +------+------+-------+------+

and the user friends table

    +--------+---------+----------+
    | userid | buddyid | accepted |
    +--------+---------+----------+

Now in SQL I ran a query that looked similar to

    SELECT u.id AS id, u.name AS username, u.email AS email FROM user_friends 
    INNER JOIN users AS u ON u.id = '1' WHERE buddyid = '2' AND ACCEPTED = 1 UNION ALL 
    SELECT u.id as id, u.name AS username, u.email AS email FROM user_friends
    INNER JOIN users AS u ON u.id = '2' WHERE buddyid = '1' AND ACCEPTED = 1;

I've got two classes in Java set-up in a fashion similar to this

    @Entity
    @Table(name="users")
    public class User {
    
      @Id
      @GeneratedValue
      private int id;

      private int name;
      private int email;

      private DateTime registerDate;
      private DateTime lastActivity;

      private int currency;
      private int seasonCurrency;

      @OneToMany(fetch=UserBuddy.class, mappedBy="user", fetch=FetchType.LAZY)
      @JoinColumn(name="userid")
      @Filter(name="messengerBuddyFilter", condition="accepted=1")
      private Set<UserBuddy> _buddies;
    }

    @Entity
    @Table(name="user_friends")
    public class UserBuddy {

       private int id;
       private int name;
       private int email;
    }

I asked this question before but still haven't been able to get this working how I would like it. I need to be able to return a set of UserBuddy.class that contains the name and email of that Buddy and nothing else, not their register time etc (by using a User class to map). I'm also having difficulty ensuring it only returns buddies that have accepted the request (ACCEPTED=1) 

Can anyone offer any suggestions? 