1
如果給定JPA註釋的實體,是否可以生成(即在運行時之前)由Hibernate執行的用於CRUD操作的查詢列表(執行對EntityManager)? 對於命名查詢,可以使用org.hibernate.hql.QueryTranslator如何在構建時使用Hibernate生成與JPA實體CRUD操作匹配的SQL查詢
任何指向Hibernate API的指針都將被讚賞。
如果給定JPA註釋的實體,是否可以生成(即在運行時之前)由Hibernate執行的用於CRUD操作的查詢列表(執行對EntityManager)? 對於命名查詢,可以使用org.hibernate.hql.QueryTranslator如何在構建時使用Hibernate生成與JPA實體CRUD操作匹配的SQL查詢
任何指向Hibernate API的指針都將被讚賞。
它可能通過hibernate的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