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