최근에 최대 절전 모드를 사용하기 시작했으며 모든 주석 주변에서 머리를 맞고 올바르게 작동하도록 노력하고 있습니다. 나는 두 테이블 '사용자'내가Java Hibernate Annotation @JoinTable 관계
비슷한 모습 쿼리를 실행 SQL에서 지금+--------+---------+----------+
| userid | buddyid | accepted |
+--------+---------+----------+
+------+------+-------+
| id | name | email |
+------+------+-------+
사용자의 친구 테이블 아래 유사하다 'user_friends'을 가지고
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;
나는이
@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_friends 이름과 전자 메일을 가져 오는 방법을 알 수 없습니다. 아무도 도움을 줄 수 있습니까? 당신이 당신의 UserBuddy에서 사용자 개체를 가지고 있기 때문에
당신이 사용자 클래스에 이름/이메일이없는 것을 참조? – jeff
나는 그랬고, 그것을 설명하기 위해 예제를 업데이트했다. User.class를 다시 사용할 수 있습니까? 나는 거기에 저장된 모든 정보를 원하지 않는다. 사용자 테이블에는 그보다 더 많은 정보가 있지만이 경우에는 user_buddy에 대한 이름과 전자 메일 만 있으면됩니다. – DominicEU
예를 들어 사용자 테이블에는 등록 날짜 및 가상 통화에 대한 정보도 들어 있습니다. 하지만 나는 user.friend에 대한 정보가 필요 없으므로 User.class를 재사용 할 생각이 없었습니다. – DominicEU