【问题标题】:Hibernate not printing 'select' SQL statementsHibernate 不打印“选择”SQL 语句
【发布时间】:2011-09-10 04:44:16
【问题描述】:

我在下面提供了一个简单的代码 sn-p 以及必要的休眠配置。 问题是正在打印所有“插入”语句,但未打印“选择”语句。

Session sess = session.openSession();
Transaction tx = sess.beginTransaction();
Address addr = new Address();
addr.setStreet("street");
Employee pojo = new Employee();
pojo.setName("XYZ");
pojo.setAddress(addr);
System.out.println("ID " + pojo.getId());
sess.saveOrUpdate(pojo);
tx.commit();
session.close()

以上代码在标准输出中打印“插入”语句

Session sess = session.openSession();
Transaction tx = sess.beginTransaction();
Employee pojo = (Employee) sess.get(Employee.class, 1);
System.out.println(pojo.getName());
System.out.println(pojo.getAddress().getStreet());
tx.commit();
session.close();

上面的代码没有打印'select'语句。我试过用load()代替get(),但结果是一样的。

此配置在休眠配置中可用。

<property name="show_sql">true</property>

提前致谢。

【问题讨论】:

    标签: sql hibernate select insert


    【解决方案1】:

    如果您启用了二级缓存,则不会执行选择,而是从缓存中获取值。尝试读取数据库中已经存在的数据,而不是刚刚插入的数据。我假设您首先插入,然后立即阅读。

    【讨论】:

    • 哦,谢谢。我应该更改哪个配置来禁用二级缓存?是的,我做了一个插入然后阅读它。
    • 我在配置文件中使用了以下更改。 。我在控制台中打印了以下行。二级缓存:禁用。但是'select'语句没有打印出来。