关于Hibernet级联更新的问题

伍子V5 2006-09-01 12:19:28
有一个公告表Bbs,一个用户表User
公告如果发布了,有发布人,如果没有发布,则为空
所以Bbs跟User是<many-to-one>的关系
在Bbs类中,user的set方法定义是
public void setUser(User user) {
if(user==null) {
this.user=new User();
} else {
this.user = user;
}
}
这样才能保证在Struts标签中使用bbs.user.name不出错
但这样也会导致
当保存没有发布人的Bbs时,出错:
Could not synchronize database state with session
net.sf.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.coscoqd.oa.model.User

根据我的判断应该是保存Bbs时也要保存或更新User
可是我并没有设置级联更新,不知道如何才能取消级联功能
...全文
400 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
killme2008 2006-09-01
  • 打赏
  • 举报
回复
if(user==null) {
this.user=new User();
user.setId(null); //假设id为主键
} else {
this.user = user;
}
伍子V5 2006-09-01
  • 打赏
  • 举报
回复
user.id就算不设定也为null
因为我设定的是Long id

67,515

社区成员

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

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