用Hibernate配置的映射文件如下:
<class name="Product" table="cart_product">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">product_seq</param>
</generator>
</id>
<property name="name"/>
<property name="description"/>
<property name="price"/>
</class>
<class name="Order" table="cart_order">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">order_seq</param>
</generator>
</id>
<property name="cost"/>
<set name="items" table="cart_order_item" cascade="save-update">
<key column="order_id"></key>
<one-to-many class="Item" />
</set>
<many-to-one name="user" column="user_id"></many-to-one>
</class>
<class name="Item" table="cart_order_item">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">order_item_seq</param>
</generator>
</id>
<property name="number" column="amount"/>
<many-to-one name="product" column="product_id"></many-to-one>
</class>
当执行
public Order findById(int id) throws Exception {
Order o=(Order)HibernateUtil.getSession().load(Order.class, id);
return o;
}
这个方法的时候就会报lazyInitialization错误,请高手指点下怎么改这错!在线等
<class name="Product" table="cart_product">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">product_seq</param>
</generator>
</id>
<property name="name"/>
<property name="description"/>
<property name="price"/>
</class>
<class name="Order" table="cart_order">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">order_seq</param>
</generator>
</id>
<property name="cost"/>
<set name="items" table="cart_order_item" cascade="save-update">
<key column="order_id"></key>
<one-to-many class="Item" />
</set>
<many-to-one name="user" column="user_id"></many-to-one>
</class>
<class name="Item" table="cart_order_item">
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">order_item_seq</param>
</generator>
</id>
<property name="number" column="amount"/>
<many-to-one name="product" column="product_id"></many-to-one>
</class>
当执行
public Order findById(int id) throws Exception {
Order o=(Order)HibernateUtil.getSession().load(Order.class, id);
return o;
}
这个方法的时候就会报lazyInitialization错误,请高手指点下怎么改这错!在线等
解决方案 »
- 及时通讯技术 有哪一些 该怎么做
- 如何在访问的网址上自动加上参数呢?
- 今天面试遇到的两个问题
- 请解释unsaved-value的意思
- 帮我看看:为什么我的服务没发布上去?
- replaceAll()正则表达式问题
- 如何将绑定命名/目录(如ldap,file system)到weblogic8.1的jndi树上
- weblogic8处理字符问题能用filter处理么?(散分处理)
- 请问一下,在EJB中的EJBC对class文件进行什么样子的操作?
- 快来救命啊。EJB调用EJB问题。深度郁闷,高分相送。
- 如何用JAVA代码实现UPNP自动端口映射?
- Java UDP 接收UNIX 的SYSLOG日志问题。会的进
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
<id name="id" column="id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">order_seq </param>
</generator>
</id>
<property name="cost"/>
<set name="items" table="cart_order_item" cascade="save-update">
<key column="order_id"> </key>
<one-to-many class="Item" />
</set>
<many-to-one name="user" column="user_id"> </many-to-one>
</class>
load方法默认是懒加载,load方法获取到的对象其实不是真正的Order对象,而是
hibernate生成的一个代理对象,可以把load换成get,或者这样
public Order findById(int id) throws Exception {
Order o=(Order)HibernateUtil.getSession().load(Order.class, id);
Hibernate.initialize(o);
return o;
}