JavaeeアプリケーションでJPAを使用しています。クラスAにマップされたテーブルAがあります。エンティティにクエリを実行すると(たとえば、そのIDで)、常に別のオブジェクトが返されます。例:
public A getAById(int id) {
A obj = (A) em.createNamedQuery("getAById")
.setParameter("id", id).getSingleResult();
return obj;
}
public void test(){
getAById(1)==getAById(1) //is false
}
データベースからクエリを実行するときに常に新しいインスタンスを作成するのではなく、既にクエリが実行されている場合は既存のオブジェクトを返すようにJPAに指示する方法はありますか?
//編集この記事は私を大いに助けました:http: //en.wikibooks.org/wiki/Java_Persistence/Caching#Example_JPA_2.0_Cacheable_annotation