关于id to load is required for loading问题:
java.lang.IllegalArgumentException: id to load is required for loading org.hibernate.event.LoadEvent.<init>(LoadEvent.java:74) org.hibernate.event.LoadEvent.<init>(LoadEvent.java:56) org.hibernate.impl.SessionImpl.get(SessionImpl.java:840) org.hibernate.impl.SessionImpl.get(SessionImpl.java:836) dq.dqbm.service.DqbmService.listBm(DqbmService.java:46) dq.dqbm.action.DqbmAction.listBm(DqbmAction.java:21) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) ) com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)
。。。。。。。。。。。。。。。。。。。。。。。。。。
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
解决方案:把hibernate备置中的not-null="true" 去掉 :
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="qd.hibernate.bean.Bm" table="bm" catalog="test2"> <id name="bmid" type="java.lang.String"> <column name="bmid" length="32" not-null="true" /> <generator class="uuid.hex" /> </id> <many-to-one name="gs" class="qd.hibernate.bean.Gs" fetch="select"> <column name="gsid" length="32" not-null="true" > <comment>公司编号</comment> </column> </many-to-one> <property name="bmmc" type="java.lang.String"> <column name="bmmc" length="32" not-null="true" > <comment>部门名称</comment> </column> </property> <set name="ygs" inverse="true"> <key> <column name="bmid" length="32" not-null="true" > <comment>部门编号</comment> </column> </key> <one-to-many class="qd.hibernate.bean.Yg" /> </set> </class> </hibernate-mapping>
注意:别把action 的model设置为私有的
否则也会出现这个错误!!!!!!!!!!
如:
private YgModel ygmodel = new YgModel();