调用hibernate的save方法,控制台打印出的语句却是update而不是insert

bsdhnjj 2012-09-26 02:17:10
代码:
public ActionForward saveForecastType(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String url = "forecastType/forecastType/indexforecastType.ftl";
String path = "message/sucess.ftl";
SysUser user = (SysUser) request.getSession().getAttribute("user");
String infoId = (String) getService().getForecastTypeManager()
.getGeneratId();// 用于生成新的Id
ForecastType info = new ForecastType();
Map root = new HashMap();
root.put("url", url);
String vegetableTypeId = (String) request.getParameter("vegetableTypeId");
String oldPri = (String) request.getParameter("oldPrice");
double oldPrice = Double.parseDouble(oldPri);
String pri = (String) request.getParameter("price");
double price = Double.parseDouble(pri);
String oldSa = (String) request.getParameter("oldSale");
double oldSale = Double.parseDouble(oldSa);
String sal = (String) request.getParameter("sale");
double sale = Double.parseDouble(sal);
System.out.println("vegetableTypeId:"+vegetableTypeId+" oldPrice:"+oldPrice+" price:"+price+" oldSale:"+oldSale+"sale:"+sale);

//开始计算系数
double e = 0;
double q = sale-oldSale;
System.out.println("q:"+q);
double p = price-oldPrice;
System.out.println("p:"+p);
e = (q/p)*(oldPrice/oldSale);
System.out.println("e: "+e);

info.setE(e);
info.setOldPrice(oldPrice);
info.setPrice(price);
info.setOldSale(oldSale);
info.setSale(sale);
if (vegetableTypeId != null) {
VegetableType ct = new VegetableType();
ct.setId(vegetableTypeId);
info.setVegetableType(ct);
}
info.setCreator(user);
info.setCreateTime(new Date());

if (getService().getForecastTypeManager().save(info)) {
root.put("message", "操作成功");
} else {
path = "message/failed.ftl";
root.put("message", "操作失败");
}
super.goToFtl(path, root, request, response);
return null;
}
...全文
232 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsdhnjj 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
if (getService().getForecastTypeManager().save(info)) {这行弄个断点,看下info和getService().getForecastTypeManager().save(info)的值各是什么,还有,怎么没有对象调用getService().getForecastTypeManager().save(info)它。。。
[/Quote]
原来是我同事把主键ID初始化导致这个错误
感谢前辈的指导
  • 打赏
  • 举报
回复
if (getService().getForecastTypeManager().save(info)) {这行弄个断点,看下info和getService().getForecastTypeManager().save(info)的值各是什么,还有,怎么没有对象调用getService().getForecastTypeManager().save(info)它。。。
bsdhnjj 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
save方法的参数是个对象,你save方法返回类型是boolean型?
[/Quote]
是的
  • 打赏
  • 举报
回复
save方法的参数是个对象,你save方法返回类型是boolean型?
bsdhnjj 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
info这个对象条用了一系列set方法,这明显就是更新info表的数据了,肯定是update了,没有insert,说明你save方法没有执行成功
[/Quote]
但是我们其他的新增方法也是如此写的,且都成功了,执行的也是insert
照搬过来改了字段就不行了
  • 打赏
  • 举报
回复
info这个对象条用了一系列set方法,这明显就是更新info表的数据了,肯定是update了,没有insert,说明你save方法没有执行成功

67,512

社区成员

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

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