【发布时间】:2018-05-03 07:00:30
【问题描述】:
我正在一个项目下工作,该项目使用 Hibernate 更新 MySQL 表中的数据。每当我运行项目时,异常如下所示。
[批量更新从更新[0]返回意外的行数;实际的 行数:0;预计:1]
控制器
@RequestMapping(value = "/disableEmployeeMaster", method = RequestMethod.POST)
public @ResponseBody void disableEmployee(HttpServletRequest request)
{
EmployeeMaster employeeMaster = new EmployeeMaster();
try
{
String employeeId = request.getParameter("employeeId");
employeeMaster.setIsDel("Y");
mainService.disableEmployee(employeeId , employeeMaster);
}
catch(Exception e)
{
logger.error(e.getMessage());
}
}
服务实施
@Override
public void disableEmployee(String Id, EmployeeMaster employeeMaster) {
Session session = null;
Transaction transaction = null;
try
{
session = sessionFactory.openSession();
transaction = session.beginTransaction();
session.update(Id, employeeMaster);
transaction.commit();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
finally
{
session.close();
}
}
【问题讨论】:
-
session.update() 方法参数是模型的对象。如果你有PK,它会自动更新行。
-
根据规范
void update(String entityName, Object object),我想Id"E02"不应该是entityName。你能告诉我们你的EmployeeMaster实体类吗? -
"E02" 不是实体,它是员工 ID。 “employeeMaster”是实体。
-
您在
EmployeeMaster中的主要内容是什么?有@Id字段的那个?