JPA アノテーション付きエンティティが与えられた場合、CRUD 操作 (EntityManager に対して実行される) のために Hibernate によって実行されるクエリのリストを (実行前に) 生成することは可能ですか? 名前付きクエリの場合、org.hibernate.hql.QueryTranslator を使用して可能です
Hibernate API へのポインターは高く評価されます。
JPA アノテーション付きエンティティが与えられた場合、CRUD 操作 (EntityManager に対して実行される) のために Hibernate によって実行されるクエリのリストを (実行前に) 生成することは可能ですか? 名前付きクエリの場合、org.hibernate.hql.QueryTranslator を使用して可能です
Hibernate API へのポインターは高く評価されます。
休止状態の ClassMetadata を介して可能です。
Session session = (Session) entityManager.getDelegate();
SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) session.getSessionFactory();
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(pEntityClass.getName());
if (hibernateMetadata instanceof AbstractEntityPersister) {
/*...look at protected methods that return SQL Strings for the entity getSQLIdentityInsertString,getSQLLazySelectString,getSQLSnapshotSelectString,getSQLUpdateByRowIdStrings,getSQLLazyUpdateByRowIdStrings,getSQLDeleteStrings,getSQLInsertStrings,getSQLUpdateStrings,getSQLLazyUpdateStrings */
}
保護されたメソッドにアクセスするには、次のリンクを参照してください: http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html