【问题标题】:Hibernate Data Cache : Objet.list not updated on add休眠数据缓存:添加时未更新 Objet.list
【发布时间】:2020-06-10 01:44:20
【问题描述】:

我有两个对象被休眠缓存并与多对一关系相关:具有处理列表的公司。

当我在与公司相关的数据库中保存新治疗时,它不会更新公司治疗列表:当我稍后尝试获取我的公司时,它不包含新治疗保存在数据库中。

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Treatment implements Serializable {

    @ManyToOne(optional = false)
    @NotNull
    @JsonIgnoreProperties("treatments")
    private Company company;

    ...
}

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Company implements Serializable {


    @OneToMany(mappedBy = "company", fetch = FetchType.EAGER)
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    private Set<Treatment> treatments = new HashSet<>();

    ...
}

【问题讨论】:

    标签: java spring hibernate spring-data


    【解决方案1】:

    好的,到目前为止,我发现了一件有效的事情:保存时,我驱逐了整个缓存。

    @Override
    @CacheEvict(value = "com.bloombooking.app.domain.Company.treatments", allEntries = true)
    public Treatment save(Treatment treatment) {
        log.debug("Request to save Treatment : {}", treatment);
        return treatmentRepository.save(treatment);
    }
    

    我找不到从缓存中逐出特定对象的正确方法。如果您有更好的答案,请不要犹豫。

    【讨论】:

      猜你喜欢
      • 2015-01-09
      • 1970-01-01
      • 2015-10-13
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2016-08-13
      • 2014-01-12
      相关资源
      最近更新 更多