derbyデータベースを備えたアプリケーションがあり、永続APIとしてeclipselinkを使用しています。チームのリストを含むGUIがあるとします。各チームには多数のプレーヤーがいます。チームクラスの関係は次のようになります。
@OneToMany(mappedBy = "team", fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
private List<player> players = new ArrayList<player>():
そしてこのようなプレイヤークラス:
@ManyToOne(targetEntity = Team.class)
@JoinColumn(name = "teamID", nullable = false, referencedColumnName = "ID")
private Team team;
だから私は今私のアプリケーションを開始し、それはすべての既存のチームでリストを埋めます:
public List<Team> getTeams()
{
TypedQuery<Team> query = em.createQuery("SELECT t FROM Team t", Team.class);
List<Team> teams = query.getResultList();
return teams;
}
これまでのところすべてが正常に機能しており、プレーヤーではなく、チームのみがロードされます。チームを選択してチームのプレーヤーと一緒にテーブルを開き、このコマンドを実行するとします。テーブルは次のように入力されます。
team.getPlayers();
これで、このチームのすべてのプレーヤーがロードされました。必要になっているからです。しかし、テーブルを閉じた後もロードされたままですが、メモリに残らないように再度「アンロード」したいと思います。これを行うにはどうすればよいですか。