我使用JPA规范,并使用Hibernate作为供应商。我需要以某种方式将生成的SQL查询发送到数据库(打印到sysout)并将其保存为简单字符串。
有没有办法做到这一点?
编辑
让我更清楚一点:我不需要休眠日志。我需要能够在不同的数据库上执行相同的查询。因此,我需要按原样获取SQL查询,并将其保存在普通的String变量中。
编辑2
是否有一个我可以为它提供bean的实用程序,它将自动生成一个Insert查询?我可以在这里使用休眠豆吗?我知道这是一个复杂的节奏。
谢谢,
伊多布
最佳答案
创建一个像这样的bean。
@Bean
public JpaVendorAdapter jpaVendorAdapter(){
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
jpaVendorAdapter.setGenerateDdl(true);
jpaVendorAdapter.setShowSql(true);
return jpaVendorAdapter;
}
如果您使用的是Spring Boot,请将其添加到@Configuration中。
由此创建的日志可在MySQL工作台中执行。
您说您正在使用JPA和Hibernate。除了JPA支持您支持的数据库之外,没有其他方法。在这种情况下,您可以实现AbstractJpaVendorAdapter。