しばらく探していましたが、次のことを行うための解決策が見つかりませんでした。
たとえば、ユーザーのリストを含むテーブルを表示しようとしています。ユーザーからのフィールドを表示することは大したことではありませんが、関連付けフィールドの場合はより複雑になります。次のテーブルがあるとしましょう: User、Post、および UserPosts。UserPosts には、特定の投稿がユーザーのメイン ポジションであるかどうかを示すフラグ main があります。
私のデータテーブルでは、ユーザーの情報を表示する必要があります。これは、ユーザー テーブルのフィールド + 彼/彼女のメイン ポストを意味します。
これまでのところ、私は次のようなものを持っています:
<table>
<thead>
<tr>
<th>name</th>
<th>FrstName</th>
<th>Age</th>
<th>Main position</th>
<th>Action</th>
</tr>
<tbody>
<c:forEach items="${listUsers}" var="user" varStatus="status">
<tr>
<td><c:out value="${user.name}" /></td>
<td><c:out value="${user.firstName}" /></td>
<td><c:out value="${user.age}" /></td>
<td><c:out value="Position here" /></td>
<td>
Delete
<a href="/myAppli/user/${user.idUser}">Update</a>
</td>
</tr>
</c:forEach>
</tbody>
</thead>
位置については、特定の列の特定のユーザーのデータベースの主な位置から取得する必要があると思いますが、この値を設定する方法 (javascript、ajax?)
代わりに関連付けクラスを使用する必要があります。つまり、メイン フィールドが true であるすべての UserPosts を取得しますか? そして、ユーザーの代わりに userPosts を反復処理します。その場合、次のようになります。
<c:forEach items="${listUserPosts}" var="userPost" varStatus="status">
<tr>
<td><c:out value="${userPost.user.name}" /></td>
<td><c:out value="${userPost.user.firstName}" /></td>
<td><c:out value="${userPost.user.age}" /></td>
<td><c:out value="${userPost.post.postName}" /></td>
<td>
Delete
<a href="/myAppli/user/${userPost.user.idUser}">Update</a>
</td>
</tr>
</c:forEach>
私には奇妙に思えます、多分私は間違っています。