问题说明:class上的lazy标签不起作用。<hibernate-mapping package="lazyclass" >
<class name="Test" table="test" lazy="true">
<id name="id" type="int">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
</class>
</hibernate-mapping>
public void testLoad(){
Session session = null;
Transaction tx = null;
Test test = null ;
try {
session = new Configuration().configure().buildSessionFactory()
.openSession();
tx = session.beginTransaction();
test = (Test)session.load(Test.class, 1);
System.out.println(test.getId());
System.out.println(test.getName());
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
session.close();
}
System.out.println(test.getName());
// 为什么在上面这行仍然打印出了结果,不是要抛LazyInitializationException 异常吗?
}
<class name="Test" table="test" lazy="true">
<id name="id" type="int">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
</class>
</hibernate-mapping>
public void testLoad(){
Session session = null;
Transaction tx = null;
Test test = null ;
try {
session = new Configuration().configure().buildSessionFactory()
.openSession();
tx = session.beginTransaction();
test = (Test)session.load(Test.class, 1);
System.out.println(test.getId());
System.out.println(test.getName());
tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
session.close();
}
System.out.println(test.getName());
// 为什么在上面这行仍然打印出了结果,不是要抛LazyInitializationException 异常吗?
}
解决方案 »
- 对话框点击按钮触发事件的问题
- 今天去面试,被问eclipse和myeclipse的区别?
- JAVA servlet 的一个奇怪问题
- JBOSS运行一段时间后停止
- hibernate的save问题
- 急!!!关闭OracleCachedRowSet的问题。
- tomcat与hibernate默认的hibernate.cfg.xml怎么只能配置一个.hbm.xml文件?
- unexpected token: ( near line 1, column 65
- 解析文件目录,寻求帮助
- 大家都用NoSQL数据库吗?NoSQL哪个占有率比较高?
- ibatis 与 ibatis dao
- 请问Hibernate取list里的值?
已经发出sql语句啦,test已经有值当然可以打印喽,而且lazy默认是true的。