2

有没有办法从 bean 实例中生成插入 SQL 查询?也许使用休眠代码?

例如:

@Table(name = "tbl_a")
class A{

   @Column(name = "col_a")
   int a;

   @Column(name = "col_b")
   int b;
}

插入到 tbl_a (col_a,col_b) 值 (avalue,bvalue)

因此,如果我为它提供一个具有 a = "val" 和 b = 5 的 A instacne,我将得到:

插入 tbl_a (col_a,col_b) 值 ('val',5) ??

编辑

看来我不太了解所以让我解释一下:我知道如何坚持使用 Hibernate。我想要的是生成 SQL 查询本身的实际类。最终将提交给数据库的相同查询。但我需要查询字符串。意思是,我需要一个工具(或使用 Hibernate 的类)来获取一个对象并返回一个包含 SQL 查询的简单字符串。(不在日志中)。

我希望现在好多了。

谢谢,伊多布

4

2 回答 2

1

好的,所以没有工具可以获取对象并返回包含 SQL 查询的简单字符串。但是您可以使用QuerygetQueryString()的方法。除了运行时参数,您将获得整个HQL 字符串。如果您对SQL 字符串感兴趣,那么您可以在 Hibernate 的 log4j 系统上启用DEBUG并使用 JDBCAppender 或一些自定义 Appender 来捕获本机 SQL。

无论如何,这个选项会让你的应用程序非常慢(休眠会产生很多调试)。

于 2013-01-17T12:40:09.703 回答
0

是的,您可以调用sessionFactory.getCurrentSession().save(new A())直接插入您的实例。执行的 SQL 看起来与您描述的相似。您可以通过打开休眠调试来测试它hibernate.show_sql=true

于 2013-01-16T15:11:59.613 回答