【问题标题】:JPA @Transient Value being recalledJPA @Transient 值被召回
【发布时间】:2014-08-10 06:46:00
【问题描述】:

我有一个实体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 值存在并设置为最后一条评论。这必须来自缓存,但除了重新启动服务器之外,我无法弄清楚在哪里或如何刷新它。

【问题讨论】:

    标签: jpa transient


    【解决方案1】:

    合并之前是否刷新了实体。试试

     em.flush()
    

    实体可能没有与数据库同步。

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 2013-07-04
      • 2011-01-10
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2020-08-30
      • 2018-08-26
      相关资源
      最近更新 更多