java编程ssh整合时候遇到的错误,网上查了很多方案,没有解决,求高手解答,

plzthink123 2018-10-14 09:48:35
当添加表时后台报这个错误:[http-bio-8080-exec-8] ERROR org.hibernate.internal.SessionImpl - HHH000346: Error during managed flush [Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1]
前台报:HTTP Status 404 - No result defined for action cn.itcast.web.action.SaleVisitAction and result error



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.domain" >
<class name="SaleVisit" table="sale_visit" >
<id name="visit_id" >
<generator class="uuid"></generator>
</id>
<property name="visit_interviewee" ></property>
<property name="visit_addr" ></property>
<property name="visit_detail" ></property>
<property name="visit_time" ></property>
<property name="visit_nexttime" ></property>

<!-- 多对一 -->
<many-to-one name="customer" column="visit_cust_id" class="Customer" ></many-to-one>
<!-- 多对一 -->
<many-to-one name="user" column="visit_user_id" class="User" ></many-to-one>
</class>
</hibernate-mapping>



这个图片是设计流程
...全文
706 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
freekaiQaQ 2019-04-08
  • 打赏
  • 举报
回复
struts配置文件有配置 SaleVisitAction_add 么? 如果有,检查下 action的访问路径对不对。
ronaldotom 2019-04-07
  • 打赏
  • 举报
回复
这个项目做到后面有个冲突,就是visit_id为空的话,传到后台的是空字符串而不是null,所以报错。我是这样解决的,在action中,进行判断:if(saleVisit.getVisit_id().equals("")){ saleVisit.setVisit_id(null); } PS:前面add.jsp我没看仔细,前面的user.user.id并不需要在隐藏域中传值,有个拦截器没看到。
darkfly1 2019-04-07
  • 打赏
  • 举报
回复
还是排查一下代码吧,控制台出现的错误是没有找到那个ACTION 在你的ACTION里面设置一个断点,如果断不下来就是ACTION设置的问题(最大可能性是断不下来,排查配置文件)
ronaldotom 2019-04-07
  • 打赏
  • 举报
回复
我看了下所有的代码,add.jsp隐藏域提交的是visit_id,而想做到楼主需要的新增客户拜访这个功能,实际需要提交的是user.user_id。
ronaldotom 2019-04-07
  • 打赏
  • 举报
回复
在你的WebContent/jsp/salevisit/add.jsp中,有一行隐藏域:<input type="hidden" name="visit_id" value="<s:property value="#saleVisit.visit_id" />" />,改为<input type="hidden" name="user.user_id" id="user.user_id" value="${sessionScope.user.user_id }" />即可
  • 打赏
  • 举报
回复
这个是主键生成策略UUID的问题,在保存salevisit 栈顶对象时,
如果不设置主键为空,sql语句打印为
Hibernate:
update
sale_visit
set
visit_time=?,
visit_interviewee=?,
visit_addr=?,
visit_detail=?,
visit_nexttime=?,
visit_cust_id=?,
visit_user_id=?
where
visit_id=?
根本没有设置主键visit_id,更新方法无法完成

先手动将saleVisit的 visit_id 设置为 null
将会使用UUID策略自动生成主键
保存方法调用时add方法,打印sql语句
Hibernate:
insert
into
sale_visit
(visit_time, visit_interviewee, visit_addr, visit_detail, visit_nexttime, visit_cust_id, visit_user_id, visit_id)
values
(?, ?, ?, ?, ?, ?, ?, ?)
爱码叔 2018-10-23
  • 打赏
  • 举报
回复
先不要管那个404的错误,这是因为hibernate报错了,跳转错误页面找不到。 先看hibernate的错误HHH000346,其实google或者baidu一下还是有很多答案的。作为开发一定善用检索工具,否则效率会很低。 我找到一篇说明https://my.oschina.net/happyBKs/blog/867280 大致浏览下,原因是: save()方法调用之后,对象就已经从临时状态变为了持久化状态,而持久化对象的ID是不能被修改的。 你可以看看你的程序是不是有这方面的问题。如果不是的化,你可以百度HHH000346,再找其他文章看看
kay三石 2018-10-19
  • 打赏
  • 举报
回复
先调试下,然后看路径和后台的接受的路径,有时我感觉很扯蛋的ssh,我也遇到过action加载不了的情况。那个黑马的CRM有时视频中奖的和你自己写出来的即使一莫一样也会有错误的
咸哼酒家 2018-10-15
  • 打赏
  • 举报
回复
404路径错误,找不到action :SaleVisitAction_add
还用struts、hibernate的项目啊

建议直接学习spring+mybatis的项目,再看看springboot,
后面你再看看hibernate技术
nayi_224 2018-10-15
  • 打赏
  • 举报
回复
看起来是sql报错导致需要跳转到result为error的页面,但是又没有配error页面的问题。
qq_38051183 2018-10-14
  • 打赏
  • 举报
回复
对于ssh新手来说,路径是第一个最大的错误,需要了解action才行
qq_38051183 2018-10-14
  • 打赏
  • 举报
回复
404,是常见的路径错误代码。
表示访问的资源路径错误。
路径分析如下:
https://127.0.0.1:8080/ssh/index.action
127.0.0.1服务器地址
8080 服务器端口号
ssh 项目名称
index.action 访问资源
ssh 新手出现404错误 经常出现在 访问资源
由于 starts采用的是 action 访问,
资源路径 = 命名空间名称+action名称+.action
下面访问名称为:
namespace:/+ action name:logic +.action
https://127.0.0.1:8080/ssh/logic.action
<package name="packageName" extends="struts-default" namespace="/">
<action name="logic" class="detailAction" method="init">
<result name="success">/jsp/success.jsp</result>
</action>
</package>
plzthink123 2018-10-14
  • 打赏
  • 举报
回复
引用 4 楼 qq_37502659的回复:
你贴控制台的错误啊 你贴这个谁看得懂
控制台错误我贴了,麻烦您看看
plzthink123 2018-10-14
  • 打赏
  • 举报
回复



这个是控制台的错误
qq_37502659 2018-10-14
  • 打赏
  • 举报
回复
你贴控制台的错误啊 你贴这个谁看得懂
plzthink123 2018-10-14
  • 打赏
  • 举报
回复
引用 2 楼 qq_37502659的回复:
新增的方法有BUG吧
我照着视频上敲的,应该没有问题。。
qq_37502659 2018-10-14
  • 打赏
  • 举报
回复
新增的方法有BUG吧
plzthink123 2018-10-14
  • 打赏
  • 举报
回复
是不是缓存的什么问题呢
tq88888 2018-10-14
  • 打赏
  • 举报
回复
引用 5 楼 Jackthink123 的回复:



这个是控制台的错误


看看/ssh_crm/SaleVisitAction_add这个action方法的返回值是否前端匹配,
这个类中其他方法都可以访问到吗?
可能出现的原因:
路径不对;方法返回值不对;
所以报错提示找不到这个action,或者返回值。
十八道胡同 2018-10-14
  • 打赏
  • 举报
回复
引用 5 楼 Jackthink123 的回复:



这个是控制台的错误


提示找不到 action ,找不到salesVisitAction_add

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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