我在下面提供了一个简单的代码片段以及必要的hibernate配置。 问题是正在打印所有'insert'语句,但不打印'select'语句。
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()
上面的代码在标准输出中打印'insert'语句
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>
提前致谢。
答案 0 :(得分:1)
如果启用了二级缓存,则不会执行选择,而是从缓存中获取值。尝试读取已存在于DB中的数据,而不是刚刚插入的数据。我假设您先插入然后立即读取。