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