Eclipse,Hibernate工具,有没有办法预览标准编辑器的sql等价查询

时间:2013-05-05 09:33:41

标签: java eclipse hibernate hql hibernate-tools

我在Hibernate tools 3.3中使用Eclipse Indigo

有没有办法查看我创建的Sql的{​​{1}}等效查询?

有一个criteria视图显示Hibernate Dynamic SQL的{​​{1}}预览。 但是我找不到Sql的任何预览。

1 个答案:

答案 0 :(得分:0)

使用Hibernate Criteria API查看SQL输出的唯一方法是运行查询。没有预览。要查看生成的SQL,必须配置数据源以记录sql语句。这是Hibernate MS SQLServer方言的persistence.xml示例。 =“true”元素是运行Hibernate查询时要详细说明的所有指令。不用说,这对性能有很大的影响。

    <persistence-unit name="projectPU" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/projectDS</jta-data-source>
        <properties>
            <property name="hibernate.dialect"
                value="org.hibernate.dialect.SQLServerDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.use_sql_comments" value="true" />
        </properties>
    </persistence-unit>

只有在运行criteria.list()

时才会生成sql
   Criteria crit = session.createCriteria(Foo.class);
   // create aliases and projections etc. whose effects are not visible yet

   List<Foo> fooList = crit.list(); // only now can you see errors!

请参阅Logging hibernate SQL using log4j