私はSpring BootアプリケーションでThymeleafテンプレートを作成しています。コントローラでデータが正しく取得されていますが、テンプレートでどのように処理するかわかりません。私は、ユーザーに関連しているサマリーテーブルを持って、ユーザーは多くのサマリーを持つことができます。各サマリーアイテムはメモを持つことができます。また、要約ごとに多くの注釈があります。Springブートアプリケーション - 現在のオブジェクトに基づいてコントローラからThymeleafへのデータ(リストのリスト)をどのように渡すことができますか?
サマリーテーブルにメモIDを含めること(一部のサマリーアイテムにメモが含まれない場合があります)、またはコントローラでデータを正しく取得しているので、テンプレートのロジックがオフになっていますか?
これは私が私のコントローラ内のデータを取得しています方法です:
modelAtt.addObject("sumList", summaryService.getList(currentUser));
List<Notes> note = notService.getList(summary.getId());
modelAtt.addObject("noteList", note);
これは私が(代わりに要約あたりのノートを表示するので、私は現在のノートを示すが、下にいます、私のテンプレート内をループしようとしています方法ですすべての要約項目は、ユーザーが代わりの概要の下にノートが)に属しています
<div th:if="${not #lists.isEmpty(sumList)}">
<div th:each="sum : ${sumList}">
<tr>
<th>Summary</th>
</tr>
<td th:text="${sum.description}"></td>
<div th:if="${not #lists.isEmpty(noteList)}">
<tr>
<th>Description</th>
</tr>
<tr th:each="note : ${noteList}">
<td th:text="${note.description}"></td>
</tr>
</div>
</div>
</div>
すべてのヘルプや提案をいただければ幸いです、ありがとう!
編集: `
//Service class
public List<Summary> getList(User user) {
return summaryRepository.summaryByUser(user);
}
public List<Note> getList(int id) {
Summary summary = summaryService.findOne(caseId);
return noteRepository.noteBySum(summary);
}
//Repo Class
@Query("select a from summary a where a.user = ?1")
List<Summary> summaryByUser(User user);
@Query("select a from note a where a.summary = ?1")
List<Note> noteBySum(Summary summary);
`
である可能性があります。データ構造に関する詳細を追加する –
@ HithamS.AlQadheebは混乱のためにお詫び申し上げます。私はコントローラ内のデータを正しく取得していますが、テンプレート内のデータを表すのに問題があります。 SummaryテーブルにはユーザIDがあり、NotesテーブルにはサマリーIDがあります。そこで、現在のサマリーIDに基づいて一覧を取得することを除いて、現在のユーザーに関連するすべてのサマリーアイテムを取得して、サマリーの一覧を作成しました。それは理にかなっていますか? – BluLotus
JPAを使用している場合は、要約を取得してフェッチタイプを選択するだけです。これは自動的にすべてをもたらすでしょう。 http://www.baeldung.com/hibernate-lazy-eager-loadingをチェックしてください。また、オブジェクトとそのリンク方法を表示してください。より良いORMとデータ構造のためにJPAを休止状態で使用することをお勧めします。 –