Hibernate

jiang_chao 2008-05-24 01:24:28
[size=12px]请各位大虾指点一下hibernate的主外键关系添加的问题,一点提交就报错[/size]

public class TUser implements java.io.Serializable {
private Long userId;
private String userName;
private String userPassword;
private String userIdCode;
private String userTel;
private String userAddr;
private String userZip;
private Integer userStatus;
private Set goodses = new HashSet(0);

// Constructors

/** default constructor */
getter和setter

}
public class Goods implements java.io.Serializable {

// Fields

private Long goodsId;
private TUser TUser;
private String goodsName;
private Double goodsPrice;
private String goodsPic;
private String goodsDesc;
private Date beginTime;
private Date endTime;

/** default constructor */
getter和setter
}
TUser.hbm.xml:
<hibernate-mapping>
<class name="com.accp.hibernate.po.TUser" table="t_user" schema="dbo" catalog="epai">
<id name="userId" type="java.lang.Long">
<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" not-null="true" />
</property>
<set name="goodses" inverse="true" cascade="all">
<key>
<column name="saler_id" not-null="true" />
</key>
<one-to-many class="com.accp.hibernate.po.Goods" />
</set>
</class>
</hibernate-mapping>

Goods.hbm.xml
<hibernate-mapping>
<class name="com.accp.hibernate.po.Goods" table="goods" schema="dbo" catalog="epai">
<id name="goodsId" type="java.lang.Long">
<column name="goods_id" />
<generator class="native" />
</id>
<many-to-one name="TUser" class="com.accp.hibernate.po.TUser" fetch="select">
<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.util.Date">
<column name="begin_time" length="23" />
</property>
<property name="endTime" type="java.util.Date">
<column name="end_time" length="23" />
</property>
</class>
</hibernate-mapping>



public class GoodsAction extends DispatchAction {

public ActionForward Add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

addShopForm shop=(addShopForm)form;
LoginForm loginForm = (LoginForm) form;
TUser user=new TUser();
Goods good=new Goods();
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
good.setGoodsName(shop.getShopName());
good.setGoodsPrice(Double.valueOf(shop.getPrice()));
good.setGoodsPic(shop.getPhoto());
good.setGoodsDesc(shop.getDepict());
try {
good.setBeginTime(formater.parse(shop.getBegin()));
good.setEndTime(formater.parse(shop.getEnd()));
} catch (ParseException e) {
e.printStackTrace();
}
good.setTUser(user);
user.getGoodses().add(good);
Ilogin login=new login();
login.Add(user);//这个方法就是连接数据库的,是对的
return mapping.findForward("succeed");
}
}

show.jsp
<html>
<head>
<script type="text/javascript">
function Submit(sb){
document.forms[0].action=sb;
document.forms[0].submit();
}
</script>
</head>

<body>
<form action="goods" method="post">
<table align="center" width="350">
<tr>
<td width="30%">商品名称:</td>
<td width="50%"><input name="shopName" /></td>
</tr>

<tr>
<td>起怕价:</td>
<td><input name="price" /></td>
</tr>

<tr>
<td>图片:</td>
<td><input name="photo" /></td>
</tr>
<tr>
<td>描述:</td>
<td><textarea cols="15" rows="5" style="overflow:scroll" name="depict"></textarea></td>
</tr>
<tr>
<td>开始拍卖时间:</td>
<td><input name="begin" /></td>
</tr>
<tr>
<td>截至时间:</td>
<td><input name="end" /></td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="提交" onclick="Submit('goods.do?operate=Add')"/>
</td>
</tr>
</table>
</form>
</body>
</html>
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang_chao 2008-05-24
  • 打赏
  • 举报
回复
谁要hibernate的联表添加发一份给我好吗?email:287297437@qq.com
jiang_chao 2008-05-24
  • 打赏
  • 举报
回复
这是struts的配置,
<form-beans >
<form-bean name="addShopForm" type="com.accp.struts.form.addShopForm" />
</form-beans>

<action
attribute="addShopForm"
parameter="operate"
input="/addShop.jsp"
name="addShopForm"
path="/goods"
scope="request"
type="com.accp.struts.action.GoodsAction" />
jiang_chao 2008-05-24
  • 打赏
  • 举报
回复
那还要怎么转啊,我以前也是这样的
sunyujia 2008-05-24
  • 打赏
  • 举报
回复
貌似你明白我的意思,form这个对象不能转addShopForm,不是这个表单没对上号啊。
jiang_chao 2008-05-24
  • 打赏
  • 举报
回复
这句没有要的,我发贴是搞错了,这句有没有影响
LoginForm loginForm = (LoginForm) form;
sunyujia 2008-05-24
  • 打赏
  • 举报
回复
addShopForm shop=(addShopForm)form;
LoginForm loginForm = (LoginForm) form;
到底谁是谁啊???
jiang_chao 2008-05-24
  • 打赏
  • 举报
回复
这就是报错信息
Hibernate: select goods0_.goods_id as goods1_1_, goods0_.saler_id as saler2_1_, goods0_.goods_name as goods3_1_, goods0_.goods_price as goods4_1_, goods0_.goods_pic as goods5_1_, goods0_.goods_desc as goods6_1_, goods0_.begin_time as begin7_1_, goods0_.end_time as end8_1_ from epai.dbo.goods goods0_
2008-5-24 12:53:18 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.ClassCastException: com.accp.struts.form.addShopForm
at com.accp.struts.action.GoodsAction.Add(GoodsAction.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
lispoy 2008-05-24
  • 打赏
  • 举报
回复
同上
老紫竹 2008-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunyujia 的回复:]
帖子太长了 贴出报错信息
[/Quote]

最关键的东西没有贴上来,

鉴定结果:此帖为【神仙贴】
sunyujia 2008-05-24
  • 打赏
  • 举报
回复
帖子太长了 贴出报错信息

67,537

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧