Java 休眠数据缓存:添加时未更新Objet.list

Java 休眠数据缓存:添加时未更新Objet.list,java,spring,hibernate,spring-data,Java,Spring,Hibernate,Spring Data,我有两个对象,它们由hibernate缓存,并与manytone关系相关:公司有一个治疗列表 当我在与公司相关的数据库中保存新治疗时,它不会更新治疗的公司列表:当我稍后尝试获取我的公司时,它不包含保存在数据库中的新治疗 @Entity @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class Treatment implements Serializable { @ManyToOne(optio

我有两个对象,它们由hibernate缓存,并与manytone关系相关:公司有一个治疗列表

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

@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<>();

    ...
}
@实体
@缓存(用法=缓存并发策略。非严格读写)
公共类处理实现可序列化{
@多通(可选=假)
@NotNull
@JsonIgnoreProperties(“治疗”)
私营公司;
...
}
@实体
@缓存(用法=缓存并发策略。非严格读写)
公共类公司实现可序列化{
@OneToMany(mappedBy=“company”,fetch=FetchType.EAGER)
@缓存(用法=缓存并发策略。非严格读写)
私有集处理=新HashSet();
...
}

好的,到目前为止,我发现了一个有效的方法:在保存时,我收回整个缓存

@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);
}
我找不到从缓存中逐出特定对象的正确方法。如果你有更好的答案,不要犹豫