session.load()没有在控制台上显示sql查询

时间:2015-05-26 13:13:17

标签: hibernate

嗨,我是hibernate的新手,当我在hibernate中使用load方法查询时,sql查询不会打印在控制台上。我还提到了Hibernate.cfg.xml文件中的条目。

Hibernate.cfg.xml文件中的条目:



<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.url">jdbc:mysql://localhost:3306</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">P@ssw0rd@123</property>
        <property name="show_sql">true</property>
        <mapping resource="hibernate/pojo/EmpDataEntity.hbm.xml"/>
        <mapping resource="hibernate/pojo/EmpDtlsEntity.hbm.xml"/>
        <mapping resource="hibernate/pojo/TeamEntity.hbm.xml"/>
        
    </session-factory>
</hibernate-configuration>
&#13;
&#13;
&#13;

我的标准查询是:

EmpDtlsEntity empDtlsEntity = (EmpDtlsEntity)session.load(EmpDtlsEntity.class,1);

请帮助我。

2 个答案:

答案 0 :(得分:0)

JDBC:MySQL的://本地主机:3306

你确定你的这个映射是对的吗?我认为它缺少数据库名称

JDBC:MySQL的://本地主机:3306 /的的databaseName

答案 1 :(得分:0)

session.load可能会返回代理,这意味着它可能不会转到数据库(只在代理中设置了id)。一旦您访问其中的属性,该实例将从数据库初始化。

如果您希望立即从数据库加载实例,可以使用session.get