私は、永続化プロバイダーとして Hibernate を使用する J2EE 6 コードベースに取り組んでいます。私の経験はSpringの方が多く、JPAアノテーションなどにはまったく慣れていませんが、すべてのエンティティクラスでこれがたくさんあることに気づき、驚いています.@NamedQueryは複雑なSQLに向いていると思いましたか? 確かに、これらの単純な選択 (および休止状態のマッピングで定義されている結合) は、SQL を書き出さずに実行できますか?
In the Entity:
@NamedQueries({
@NamedQuery(name = "DealRaw.findByrawUrl", query = "SELECT d FROM DealRaw d WHERE d.rawUrl = :rawUrl"),
@NamedQuery(name = "DealRaw.findByState", query = "SELECT d FROM DealRaw d WHERE d.state = :state"),
.... etc ....
})
その後
In the Service Class
Query qR=_em.createNamedQuery("DealRaw.findByrawUrl"); //_em is an EntityManager
qR.setParameter("rawUrl", value);
List<DealRaw> dRs=(List <DealRaw>)qR.getResultList();