Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate和spring MVC上的更新不工作_Java_Spring_Hibernate_Jsp - Fatal编程技术网

Java hibernate和spring MVC上的更新不工作

Java hibernate和spring MVC上的更新不工作,java,spring,hibernate,jsp,Java,Spring,Hibernate,Jsp,在编辑表之后,我无法更新它,因为在调试和呈现DAO文件中的所有值时,它工作正常,但在DAO实现之后,它不会在用户列表中显示相同值的更新值。我在此附上我的代码: JSP文件: <form:form id="editForm" modelAttribute="user" action="update"> <div style="width: 400px; padding: 10px; border: 5px solid gray; margin: 0px;"> <tab

在编辑表之后,我无法更新它,因为在调试和呈现DAO文件中的所有值时,它工作正常,但在DAO实现之后,它不会在用户列表中显示相同值的更新值。我在此附上我的代码:

JSP文件:

<form:form id="editForm" modelAttribute="user" action="update">
<div style="width: 400px; padding: 10px; border: 5px solid gray; margin: 0px;">
<table width="400px" height="150px">

<tr><td><font face="Arial">First Name:</font></td>
<td><input name="licenseNumber" value="${model.user.firstName}"></td></tr>
<tr><td><font face="Arial">Last Name:</font></td>
<td><input name="licenseNumber" value="${model.user.lastName}"></td></tr>

<tr><td><font face="Arial">Gender:</font></td>
<td><input name="licenseNumber" value="${model.user.gender}"></td></tr>
<tr><td><font face="Arial">City Name:</font></td>
<td><input name="licenseNumber" value="${model.user.city}"></td></tr>

<tr><td></td><td>
<input type="submit" value="Edit" />
<br>
<a href="userList.html" >Cancel</a>
</td></tr>
</table>
</div>
</form:form>
服务等级

@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class UserServiceImpl implements UserService {

    @Autowired
    UserDao userDao;

    @Override
    public void addUser(User user) 
    {
        userDao.saveUser(user);
    }

    @Override
    public List<User> getUser() 
    {
        return userDao.getUser();
    }

    @Override
    public User getUser(int id) 
    {
        return userDao.getUser(id);
    }

    @Override
    public void updateUser(User user)
    {
        userDao.updateUser(user);
    }
}
@服务
@事务性(传播=propagation.SUPPORTS,只读=true)
公共类UserServiceImpl实现UserService{
@自动连线
UserDao UserDao;
@凌驾
public void addUser(用户)
{
userDao.saveUser(用户);
}
@凌驾
公共列表getUser()
{
返回userDao.getUser();
}
@凌驾
公共用户getUser(int-id)
{
返回userDao.getUser(id);
}
@凌驾
public void updateUser(用户)
{
userDao.updateUser(用户);
}
}
控制器类

@RequestMapping(value = "/edit", method = RequestMethod.GET)  
public ModelAndView editUserData(@ModelAttribute("user") User user,  
   BindingResult result) {  
  Map<String, Object> model = new HashMap<String, Object>();  
  model.put("user", userService.getUser(user.getId()));  
  return new ModelAndView("Edit","model",model);
 } 

@RequestMapping(value = "/update", method = RequestMethod.POST)  
public ModelAndView updateUserData(@ModelAttribute("user") User user,  
   BindingResult result,SessionStatus status) {  
   userService.updateUser(user);
   status.setComplete();
   return new ModelAndView("redirect:/userList.html");
 } 
@RequestMapping(value=“/edit”,method=RequestMethod.GET)
公共模型和查看editUserData(@ModelAttribute(“用户”)用户,
BindingResult(结果){
映射模型=新的HashMap();
put(“user”,userService.getUser(user.getId());
返回新模型和视图(“编辑”、“模型”、“模型”);
} 
@RequestMapping(value=“/update”,method=RequestMethod.POST)
public ModelAndView updateUserData(@ModelAttribute(“用户”)用户,
BindingResult结果,SessionStatus状态){
userService.updateUser(用户);
status.setComplete();
返回新的ModelAndView(“重定向:/userList.html”);
} 
试试看

  • 通过更新更改合并

    sessionFactory.getCurrentSession().update(用户)

  • 如果1不起作用,请尝试:

    sessionfactory.getCurrentSession().merge(用户); sessionFactory.getCurrentSession().update(用户)


  • 您正在将所有@Transactional方法设置为readOnly=“true”。您应该重写在数据库中进行更改的所有方法

    @Service
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public class UserServiceImpl implements UserService {
    
        @Autowired
        UserDao userDao;
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS, readOnly = false)
        public void addUser(User user) 
        {
            userDao.saveUser(user);
        }
    
        @Override
        public List<User> getUser() 
        {
            return userDao.getUser();
        }
    
        @Override
        public User getUser(int id) 
        {
            return userDao.getUser(id);
        }
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS, readOnly = false)
        public void updateUser(User user)
        {
            userDao.updateUser(user);
        }
    }
    
    @服务
    @事务性(传播=propagation.SUPPORTS,只读=true)
    公共类UserServiceImpl实现UserService{
    @自动连线
    UserDao UserDao;
    @凌驾
    @事务性(传播=propagation.SUPPORTS,只读=false)
    public void addUser(用户)
    {
    userDao.saveUser(用户);
    }
    @凌驾
    公共列表getUser()
    {
    返回userDao.getUser();
    }
    @凌驾
    公共用户getUser(int-id)
    {
    返回userDao.getUser(id);
    }
    @凌驾
    @事务性(传播=propagation.SUPPORTS,只读=false)
    public void updateUser(用户)
    {
    userDao.updateUser(用户);
    }
    }
    
    @Service
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public class UserServiceImpl implements UserService {
    
        @Autowired
        UserDao userDao;
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS, readOnly = false)
        public void addUser(User user) 
        {
            userDao.saveUser(user);
        }
    
        @Override
        public List<User> getUser() 
        {
            return userDao.getUser();
        }
    
        @Override
        public User getUser(int id) 
        {
            return userDao.getUser(id);
        }
    
        @Override
        @Transactional(propagation = Propagation.SUPPORTS, readOnly = false)
        public void updateUser(User user)
        {
            userDao.updateUser(user);
        }
    }