这是我的情况;让我们假设我有两张桌子;员工和责任Responsibility.employee_id = employee.id
。
有时我们需要手动更新Responsibility.employee_id
并且无法避免这种情况,有时需要手动完成。当我们这样做时,cayenne没有看到重新获取对象的必要性,因为它不知道它已被更新。
问题:我想完全禁用cayenne中的缓存。我希望从数据库中获取所有内容。这可能吗?
答案 0 :(得分:0)
完全禁用缓存是一个加载的问题。它可能意味着不同情况下的不同事物。相反,我将回答如何刷新你的关系。解决方法是在选择对象时使用预取。 E.g:
SelectQuery query = new SelectQuery(Responsibility.class);
query.addPrefetch("employee");
List<Responsibility> responsibilities = context.performQuery(query);
上面为您提供了新的责任对象,并刷新了与员工的关系。