JPA @Transient Value被召回

时间:2014-06-19 16:18:56

标签: jpa transient

我有一个实体Ticket.class,它具有以下属性(其中包括):

@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})
private List<Comment> comments;

@Transient
private Comment comment;

然后我有一个方法如下:

public void edit() {
    ...
    // Add the comment
    comments.add(comment);
    comment = new Comment();

    // Persist the ticket
    em.merge(ticket);
}

我面临的问题是,当我下次从数据库中检索Ticket时,@Transient值存在并设置为最后一条注释。这必须来自缓存,但除了重新启动服务器之外,我无法弄清楚在哪里或如何刷新它。

1 个答案:

答案 0 :(得分:0)

您是否在合并前刷新了您的实体。尝试

 em.flush()

实体可能没有与数据库进行sysnchronize的可能性。