gpt4 book ai didi

jpa - 如何获取 JPA 生成的 SQL 查询?

转载 作者:行者123 更新时间:2023-12-03 22:20:52 24 4
gpt4 key购买 nike

我使用 JPA 规范和 Hibernate 作为我的供应商。我需要以某种方式获取发送到数据库的生成的 SQL 查询(打印到 sysout)并将其保存为一个简单的字符串。

有没有办法做到这一点?

编辑

让我更清楚一点:我不需要休眠日志。我需要能够在不同的数据库上执行相同的查询。因此,我需要按原样获取 SQL 查询,并将其保存在一个普通的 String 变量中。

编辑 2

有没有我可以提供一个 bean 的工具,它会自动生成一个插入查询?我可以在这里以某种方式使用 Hibernate bean 吗?我知道这是一个节拍情结。

谢谢,

伊多布

最佳答案

像这样创建一个 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。

关于jpa - 如何获取 JPA 生成的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com