Cayenne 3.1 - 禁用缓存

时间:2015-04-21 19:38:49

标签: java caching fetch cache-control apache-cayenne

这是我的情况;让我们假设我有两张桌子;员工和责任Responsibility.employee_id = employee.id

有时我们需要手动更新Responsibility.employee_id并且无法避免这种情况,有时需要手动完成。当我们这样做时,cayenne没有看到重新获取对象的必要性,因为它不知道它已被更新。

问题:我想完全禁用cayenne中的缓存。我希望从数据库中获取所有内容。这可能吗?

1 个答案:

答案 0 :(得分:0)

完全禁用缓存是一个加载的问题。它可能意味着不同情况下的不同事物。相反,我将回答如何刷新你的关系。解决方法是在选择对象时使用预取。 E.g:

SelectQuery query = new SelectQuery(Responsibility.class);
query.addPrefetch("employee");
List<Responsibility> responsibilities = context.performQuery(query);

上面为您提供了新的责任对象,并刷新了与员工的关系。