hibernate-Spring,Hibernate保存对象时的问题

问题描述

Spring,Hibernate保存对象时的问题
有两个实体类User和Department。建立双向多对一关联。

User是多的一端

@Entitypublic class User implements Serializable{    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)    @Column(name=""id"")    private Integer id;    @Column(name=""name"")    private String name;    @Column(name=""age"")    private Integer age;    @ManyToOne(cascade=CascadeType.ALL)      @JoinColumn(name=""department_id"")    private Department department;}

Department是一的一端

@Entitypublic class Department {    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)    @Column(name=""id"")    private Integer id;    @Column(name=""name"")    private String name;    @OneToMany(mappedBy=""department""  cascade=CascadeType.ALL)      private Set<User> user;}

数据库中有如图的数据:

User表:

Department表:

通过jsp新增一个User

<form:form action=""${pageContext.request.contextPath}/add""  method=""post"" commandName=""User"">    <table>        <tr>            <td>Name:</td>  <td><form:input path=""name""/></td>        </tr>        <tr>            <td>Age:</td>   <td><form:input path=""age""/></td>        </tr>        <tr>            <td>Department:</td>    <td><form:input path=""department.name""/></td>        </tr>        <tr>            <td><input type=""submit""></td>        </tr>    </table></form:form>

Dao层里的代码

@Autowired    private SessionFactory sessionFactory;    private Session getSession(){        return sessionFactory.getCurrentSession();    }    public void add(User user) {        Session session = getSession();        session.save(user);    }

结果数据库更新后是这样的

执行的SQL

Hibernate: insert into Department (name) values (?)

Hibernate: insert into User (age department_id name) values (? ? ?)

想要达到的效果是新增User的department_id应该还是已有的部门,而不是新建一个部门。请问是什么问题啊。
多谢了!!!

解决方案

你没有说清楚你遇到了什么问题

时间: 2024-11-01 10:27:56

hibernate-Spring,Hibernate保存对象时的问题的相关文章

hibernate save-hibernate执行保存对象时出现异常:org.hibernate.exception.GenericJDBCException

问题描述 hibernate执行保存对象时出现异常:org.hibernate.exception.GenericJDBCException hibernate执行保存对象时出现异常:org.hibernate.exception.GenericJDBCException: could not insert: [com.hibernate.domain.User] Caused by: java.sql.SQLException: Field 'user_id' doesn't have a d

教育网研究一 hibernate 插入和保存对象

hibernate保存出错org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1更新报错怎么办原来是有取值为空 DBOperate dbo = new DBOperate();     news_inf inf1 = new news_inf();   inf1 = (news_inf) dbo.getO

我在做struts+hibernate+spring集成启动服务器时那个Listener老是启动不了?怎么解决!急……

问题描述 atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCap

SpringMVC、Hibernate系列之级联对象的json序列化

       最近为了加深学习Spring和Hibernate,就利用Spring4.Hibernate5搭建了SpringMVC与Hibernate整合的平台框架.搭建过程曾遇到了一系列的棘手问题,在这里将相应的解决方案给予记录和分享. 问题描述 利用Jackson序列化Hibernate一对多关联对象时,出现死循环.花费了1天半时间,必须记录下来. 问题分析 很显然是由于Jackson序列化的深度序列化引起的.Hibernate的级联对象难免会存在各式各样的循环嵌套,更甚至自关联的情况.解决

hibernate 循环遍历 list对象,只保存最后一条数据,偶现

问题描述 hibernate 循环遍历 list对象,只保存最后一条数据,偶现 @Transactional(readOnly = false, propagation = Propagation.REQUIRED) public String rankScoreIn(MultipartFile file, String classid, String testname, String grad, String subject) { StringBuilder failureMsg = new

ssh-SpringMVC+Spring+Hibernate 启动tomcat时出现这个错误怎么解决

问题描述 SpringMVC+Spring+Hibernate 启动tomcat时出现这个错误怎么解决 2012-10-24 11:45:22 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the

对象被json格式化时,hibernate 延迟加载将所有对象都查了出来。

问题描述 对象被json格式化时,hibernate 延迟加载将所有对象都查了出来. 对象被json格式化时,hibernate 延迟加载将所有对象都查了出来, 如何在json格式化时不适用get方式? 解决方案 在线等不知道有啥好的方法 解决方案二: jackson json,用于hibernate的懒加载对象级联关系的json解析 解决方案三: 你好! 如何这样的话如果我用到了延迟加载呢?有没有更好的办法?

hibernate配置-使用注解生成的uuid.hex 调用save()保存对象不发语句也不报错

问题描述 使用注解生成的uuid.hex 调用save()保存对象不发语句也不报错 @Id @GenericGenerator(name=""systemUUID""strategy=""uuid"") @GeneratedValue(generator=""systemUUID"") @Column(name = ""ID"" unique =

Struts+Spring+Hibernate实现上传下载

上传|下载 引言 文件的上传和下载在J2EE编程已经是一个非常古老的话题了,也许您马上就能掰着指头数出好几个著名的大件:如SmartUpload.Apache的FileUpload.但如果您的项目是构建在Struts+Spring+Hibernate(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题了. 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序.SS