<hibernate-mapping>
<class name="com.hello.model.Dog" table="DOG" lazy="true">
<id name="id" type="int">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="address" type="java.lang.String" lazy="true">
<column name="ADDRESS" />
</property>
<property name="content" type="java.lang.String">
<column name="CONTENT" />
</property>
</class>
</hibernate-mapping>
Dog d = (Dog) session.get(Dog.class, 1);
生成的SQL语句: select dog0_.ID as ID0_0_, dog0_.NAME as NAME0_0_, dog0_.ADDRESS as ADDRESS0_0_, dog0_.CONTENT as CONTENT0_0_ from DOG dog0_ where dog0_.ID=? 仍然查询了address啊? 

解决方案 »

  1.   

    Dog类:public class Dog { private int id; private String name; private String address; private String content; public int getId() {
    return id;
    } public void setId(int id) {
    this.id = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public String getAddress() {
    return address;
    } public void setAddress(String address) {
    this.address = address;
    } public String getContent() {
    return content;
    } public void setContent(String content) {
    this.content = content;
    }
      

  2.   

    session的get()方法是立即加载的用load()方法试试,可延迟加载