我有一个实体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
值存在并设置为最后一条注释。这必须来自缓存,但除了重新启动服务器之外,我无法弄清楚在哪里或如何刷新它。
答案 0 :(得分:0)
您是否在合并前刷新了您的实体。尝试
em.flush()
实体可能没有与数据库进行sysnchronize的可能性。