JPA merge方法报错

kelvin_t 2011-05-05 10:50:04
求助 高手 帮忙解决啊

代码
@Transactional(propagation=Propagation.REQUIRED,readOnly=false)
@RequestMapping(value = "/{id}", params = "author", method = RequestMethod.GET)
public String author(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "ids", required = true) String ids,
Model model){
String[] users = ids.split(",");
for(int i = 0; i < users.length; i++){
User user = User.findUser(Integer.valueOf(users[i]).longValue());
Set<Role> roles = user.getRoles();
roles.add(Role.findRole(id));
user.setRoles(roles);
user.merge();
}
return "redirect:/users/"+id+"?authorizeForm";
}

错误信息

validation failed for classes [cn.com.softvan.travelb2b.domain.User] during update time for groups [javax.validation.groups.Default, ]org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132)
org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreUpdate(BeanValidationEventListener.java:79)
org.hibernate.action.EntityUpdateAction.preUpdate(EntityUpdateAction.java:236)
org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:87)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:267)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:259)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:179)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:791)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
$Proxy43.flush(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
$Proxy37.flush(Unknown Source)
cn.com.softvan.travelb2b.domain.User_Roo_Entity.ajc$interMethod$cn_com_softvan_travelb2b_domain_User_Roo_Entity$cn_com_softvan_travelb2b_domain_User$merge(User_Roo_Entity.aj:63)
cn.com.softvan.travelb2b.domain.User.merge(User.java:1)
cn.com.softvan.travelb2b.domain.User_Roo_Entity.ajc$interMethodDispatch1$cn_com_softvan_travelb2b_domain_User_Roo_Entity$cn_com_softvan_travelb2b_domain_User$merge(User_Roo_Entity.aj)
cn.com.softvan.travelb2b.web.UserController.author(UserController.java:117)
...全文
256 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelvin_t 2011-05-06
  • 打赏
  • 举报
回复
解决了,就你一个人 分给你了
  • 打赏
  • 举报
回复
user.merge();

这个应该不是 JPA 的 merge 方法。JPA 的 merge 方法是有参数的。

81,092

社区成员

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

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