如何通过Hibernate的id来添加属性类?

时间:2017-07-25 20:57:14

标签: java hibernate

坚持了一下并想 - 需要帮助 假设我有一个类Message,这是一个论坛的孩子。它们在注释中具有一对多关系。像这样:

@Entity
@Table(name="message", catalog="catalog")
public class Message implements Serializable {
    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name="IDMessage", unique = true)
    private int idMessage;

    @Column(name="Title", columnDefinition="TEXT")
    private String title;

    @Column(name="Message", columnDefinition="TEXT")
    private String message;

    @ManyToOne
    @JoinColumn(name="IDForum")
    private Forum forum;
}

问题:

我不想通过它的ID检索论​​坛对象,将其附加到邮件中,然后才保存邮件。 所以我开始创建一个包装器,它将类似于:

public class MessageDto {

    private int idMessage;
    private String title;
    private String message;
    private int idForum;
}

每当我保存/更新时使用它。但我有一种强烈的感觉,我做错了。

简单的指导,寻找答案的方向,将是一个很大的帮助 提前谢谢!

1 个答案:

答案 0 :(得分:1)

在休眠状态下,如果对象已经存在,则不需要获取该对象。只需使用id创建一个新论坛(您应该已经拥有它)。 例如:

Message message = new Message();
...
...
Forum forum = new Forum();
forum.setId(yourId);
message.setForum(forum);

messageRepository.save(message);

Hibernate应该保存好。