【问题标题】:Hibernate update table休眠更新表
【发布时间】:2011-07-05 09:31:53
【问题描述】:

我是 Hibernate 的新手,按照 http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-one-to-many-using-annotations-1.html 上的教程,我对该教程中的主类有疑问。

我明白了

设置 phoneNumbers = new HashSet(); phoneNumbers.add(new Phone("house","32354353")); phoneNumbers.add(new Phone("mobile","9889343423")); 学生 student = new Student("Eswar", phoneNumbers); session.save(学生); 事务.commit();

将新记录插入三个表中。但是如果这个学生得到另一个号码

电话工作 = new Phone("mobile","12345678");

如何更新 PHONE 和 STUDENT_PHONE 表。谢谢。

【问题讨论】:

    标签: hibernate hibernate-mapping


    【解决方案1】:

    你错过了几件事。此代码将起作用:

    Set phoneNumbers = new HashSet();
    student.setPhoneNumbers(phoneNumbers); // Add the phone numbers to the Student
    
    Phone phone = new Phone("house","32354353");
    session.save(phone); // Persist the new object
    phoneNumbers.add(phone);
    
    Phone phone = new Phone("mobile","9889343423");
    session.save(phone); // Persist the new object
    phoneNumbers.add(phone);
    
    Student student = new Student("Eswar", phoneNumbers);
    session.save(student);
    transaction.commit();
    

    【讨论】:

    • 感谢您的回复。可能我没有很好地解释我的问题。我可以让代码工作。我想知道的是,在教程中运行主类后,STUDENT 表中有一个名为“Eswar”的学生。但是稍后我们想通过添加他的工作电话号码来更新 Eswar 的详细信息,我该怎么处理它。我曾尝试使用 session.save(student),但我在 STUDENT 表中获得了两个“Eswar”条目。
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多