我正在寻找一个Java开源美化器或SQL的重新格式化程序,我可以用它来清理我用openArchitectureWare生成的DDL语句.
" Online Code Beautifier和Formatter " 的答案中没有任何内容对我有用,我无法让Simple SQL Formatter为我工作.
我使用JPA规范和Hibernate作为我的供应商.我需要以某种方式将生成的SQL Query发送到DB(打印到sysout)并将其保存为一个简单的字符串.
有没有办法做到这一点?
编辑
让我更清楚一点:我不需要休眠日志.我需要能够在不同的DB上执行相同的查询.因此,我需要按原样获取SQL查询,并将其保存在普通的String变量中.
编辑2
是否有一个util我可以提供一个bean,它会自动生成一个Insert查询?我能以某种方式在这里使用Hibernate bean吗?我知道这是一个复杂的节拍.
谢谢,
Idob
我需要从Hibernate查询中获取字符串并稍后处理它(所以我无法解决它"hibernate.show_sql").
我已经看过如何从Hibernate Criteria API获取SQL(*不*用于日志记录)但是使用该解决方法我得到了SQL查询字符串但是没有显示它显示的参数值'?'...有什么方法可以获取带参数值的完整SQL字符串?
我的意思是,有了这个解决方案,我得到"SELECT * FROM USER WHERE NAME=? AND SURNAME=?"但是我需要"SELECT * FROM USER WHERE NAME='John' AND SURNAME='Doe'"......
想法?
我想使用 Hibernate 6 从CriteriaQuery获取 sql 字符串。
CriteriaQuery.SQLExtractor.from()也不起作用,因为它只是使用反射来调用Query.getQueryString()有任何想法吗?
在Hibernate中有一个规定,您可以从Criteria 如何从Hibernate Criteria API获取SQL(*not*for logging)中获取查询,但我想从Hibernate获取更新/删除查询saveOrUpdate,delete(Object)那么有什么选择吗?
我想"干运行"Hibernate HQL查询.那就是我想知道Hibernate将从给定的HQL查询执行什么实际的SQL查询而不实际执行针对真实数据库的HQL查询.
我可以访问表的hibernate映射,HQL查询字符串,我的数据库的方言.如果需要,我也可以访问数据库.
现在,我怎样才能找到Hibernate可以从我的HQL生成的所有SQL查询,而无需对任何数据库实际执行查询?这有什么工具吗?
请注意,可以从一个HQL查询生成许多SQL查询,并且生成的SQL查询集可能会根据数据库的内容而有所不同.
我不是在询问HQL查询执行时如何记录SQL查询.
编辑:我不介意连接到数据库来获取一些元数据,我只是不想执行查询.
编辑:我也知道对查询应用了什么限制和偏移.我还有将绑定到查询的实际参数.