0

私は最近Hibernateの使用を開始し、すべての注釈に頭を悩ませて、適切に処理できるようにしようとしています。以下のような2つのテーブル「user」と「user_friends」があります

+------+------+-------+
| id   | name | email |
+------+------+-------+

とユーザーの友達テーブル

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

SQLで、次のようなクエリを実行しました。

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;

これに似た方法でJavaセットアップに2つのクラスがあります

@Entity
@Table(name="users")
public class User {

  @Id
  @GeneratedValue
  private int id;

  private int name;
  private int email;

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

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

   @ManyToOne
   @JoinColumn(name="id")
   private User friendId;

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

次に、userテーブルからuser_friendsの名前と電子メールを取得する方法がわかりません。誰かが助けを提供できますか?

4

1 に答える 1

1

UserBuddyにUserオブジェクトがあるので、それを参照するだけです

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

   @ManyToOne
   @JoinColumn(name="id")
   private User friend; // This is a User not an id

   public String getEmail()
   {
     return friend.getEmail();
   }
}
于 2012-07-13T16:32:06.073 に答える