joymod 2015-03-08 15:47 采纳率: 0%
浏览 1965

Spring,Hibernate保存对象时的问题

有两个实体类User和Department。建立双向多对一关联。

User是多的一端

@Entity
public 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是一的一端

@Entity
public 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应该还是已有的部门,而不是新建一个部门。请问是什么问题啊。
多谢了!!!

  • 写回答

1条回答 默认 最新

  • devmiao 2015-03-08 15:53
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?