67,513
社区成员
发帖
与我相关
我的任务
分享
2Hibernate: select tuser0_.user_id as user1_0_0_, tuser0_.user_name as user2_0_0_, tuser0_.user_password as user3_0_0_, tuser0_.user_id_code as user4_0_0_, tuser0_.user_tel as user5_0_0_, tuser0_.user_addr as user6_0_0_, tuser0_.user_zip as user7_0_0_, tuser0_.user_status as user8_0_0_ from epai.dbo.t_user tuser0_ where tuser0_.user_id=?
Hibernate: insert into epai.dbo.goods (buyer_id, saler_id, goods_name, goods_price, goods_pic, goods_desc, begin_time, end_time, goods_status) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
2009-08-18 09:16:39 Unhandled Exception thrown: class org.springframework.dao.InvalidDataAccessApiUsageException
2009-08-18 09:16:39 Servlet.service() for servlet action threw exception
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.accp.epai.entity.TUser
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:242)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:576)
at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:3121)
at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:472)
at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:197)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:120)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373)
at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:686)
at com.accp.epai.hib.dao.impl.GoodsDaoImpl.add(GoodsDaoImpl.java:13)
at com.accp.epai.hib.biz.impl.GoodsBizImpl.add(GoodsBizImpl.java:19)
at com.accp.epai.web.action.GoodsAction.addGoods(GoodsAction.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
<?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="com.accp.epai.entity.Goods" table="goods" schema="dbo" catalog="epai" >
<id name="goodsId" type="java.lang.Integer">
<column name="goods_id" />
<generator class="native" />
</id>
<many-to-one name="userByBuyerId" class="com.accp.epai.entity.TUser">
<column name="buyer_id" />
</many-to-one>
<many-to-one name="userBySalerId" class="com.accp.epai.entity.TUser" cascade="all">
<column name="saler_id" not-null="true" />
</many-to-one>
<property name="goodsName" type="java.lang.String">
<column name="goods_name" length="50" not-null="true" />
</property>
<property name="goodsPrice" type="java.lang.Double">
<column name="goods_price" scale="4" not-null="true" />
</property>
<property name="goodsPic" type="java.lang.String">
<column name="goods_pic" length="500" />
</property>
<property name="goodsDesc" type="java.lang.String">
<column name="goods_desc" length="3000" />
</property>
<property name="beginTime" type="java.sql.Date">
<column name="begin_time" length="23" />
</property>
<property name="endTime" type="java.sql.Date">
<column name="end_time" length="23" />
</property>
<property name="goodsStatus" type="java.lang.Integer">
<column name="goods_status" not-null="true" />
</property>
<set name="bids" inverse="true">
<key>
<column name="goods_id" not-null="true" />
</key>
<one-to-many class="com.accp.epai.entity.Bid" />
</set>
</class>
</hibernate-mapping>
<?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="com.accp.epai.entity.TUser" table="t_user" schema="dbo" catalog="epai">
<id name="userId" type="java.lang.Integer">
<column name="user_id" />
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" length="50" not-null="true" />
</property>
<property name="userPassword" type="java.lang.String">
<column name="user_password" length="50" not-null="true" />
</property>
<property name="userIdCode" type="java.lang.String">
<column name="user_id_code" length="20" not-null="true" />
</property>
<property name="userTel" type="java.lang.String">
<column name="user_tel" length="50" not-null="true" />
</property>
<property name="userAddr" type="java.lang.String">
<column name="user_addr" length="300" not-null="true" />
</property>
<property name="userZip" type="java.lang.String">
<column name="user_zip" length="20" not-null="true" />
</property>
<property name="userStatus" type="java.lang.Integer">
<column name="user_status" />
</property>
<set name="bids" inverse="true">
<key>
<column name="buyer_id" not-null="true" />
</key>
<one-to-many class="com.accp.epai.entity.Bid" />
</set>
<set name="goodsesForSalerId" inverse="true">
<key>
<column name="saler_id" not-null="true" />
</key>
<one-to-many class="com.accp.epai.entity.Goods" />
</set>
<set name="goodsesForBuyerId" inverse="true">
<key>
<column name="buyer_id" />
</key>
<one-to-many class="com.accp.epai.entity.Goods" />
</set>
</class>
</hibernate-mapping>
public void add(Goods obj) {
super.getHibernateTemplate().saveOrUpdate(obj);
}
public void add(Goods goods) {
goodsDao.add(goods);
}
public ActionForward addGoods(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
GoodsForm goodsForm = (GoodsForm) form;
Goods goods = goodsForm.getGoods();
System.out.print(goods.getUserBySalerId().getUserId());//有值
TUser us = null;
us=userBiz.selectById(goods.getUserBySalerId().getUserId());//得到了对象
goods.setUserBySalerId(us);
goodsBiz.add(goods);
return mapping.findForward("index");
}