저는 봄에 초보자입니다. 나는 약간의 예를 들어 내 문제를 설명하는 것이 더 낫다고 생각한다. 두 개의 주요 클래스 인 User
과 Group
이 있다고 가정 해 보겠습니다. User
은 더 Group
s의 부분 일 수 있으며 Group
은 분명히 더 User
s 일 수 있습니다. 그래서 그들 사이의 관계는 many to many입니다.
@OneToMany 및 @ManyToOne으로 코딩 된 다 대다 관계의 속성 표시
랜덤 (2) :
조
Bloggs에<c:forEach items="${groups}" var="group"> <c:out value="${group.name}"/> (<c:out value="${fn:length(group.users)}" />):<br /> <c:forEach items="${groups.users}" var="user"> <c:out value="${user.name}"/><br /> </c:forEach><br /> </c:forEach>
기본적으로, 출력과 같이해야한다 :이 같은 뭔가 (사용 JSTL) 내가 보여 드리고자 무엇입니까
스타 워즈 (5) :
누가 복음
추바카
다스 베이더
레이아 공주
요다
닌텐도 (3) :
슈퍼 마리오
메트로이드
젤다
내가 처음에 추가 테이블 user_has_group
를 사용하여, 고전 @ManyToMany
주석을 코딩 (JPA에 의해 생성되고 관리 됨) 완벽하게 작동하고있었습니다.
user_has_group
테이블에 joined_date
열이 있어야하므로 구조를 수정해야했습니다. 이를 달성하기 위해 최선의 해결책은 다른 클래스 (예 : UserHasGroup
)를 만들고이 클래스에 일대 다 관계를 User
및 group
에서 추가하는 것입니다. 이렇게하면 UserHasGroup
클래스에 속성을 추가 할 수 있습니다 (따라서 user_has_group
테이블에 추가 열을 추가 할 수 있습니다). 같은 뭔가 :
사용자 :
@Entity
@Table(name = "user")
public class User
{
@Id
@GeneratedValue
@Column
private int id;
@Column
private String alias;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private List<UserHasGroup> userHasGroup = new ArrayList<UserHasGroup>();
// Constructors/getters/setters
}
그룹 :
@Entity
@Table(name = "`group`")
public class Group
{
@Id
@GeneratedValue
@Column
private int id;
@Column
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "group")
private List<UserHasGroup> userHasGroup = new ArrayList<UserHasGroup>();
// Constructors/getters/setters
}
UserHasGroup :
@Entity
@Table(name = "user_has_group")
public class UserHasGroup
{
@Id
@GeneratedValue
@Column
private int id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "group_id")
private Group group;
@Column
@Temporal(TemporalType.DATE)
private Date joinedDate;
// Constructors/getters/setters
}
지금까지 너무 좋아. 모든 테스트가 성공적으로 실행되고 기능이 유지됩니다.
하지만 JSTL에 문제가 있습니다. 사실,이 새로운 구조를 사용하면 분명히 group.users
을 반복하여 사용자를 반복 할 수 없습니다.
이 새로운 구조로 이전과 같은 기능을 수행하는 가장 좋은 방법은 무엇입니까?
감사합니다.
있습니까? –