Cayenne 3.1 - отключить кэш

Вот моя ситуация; давайте предположим, что у меня есть 2 таблицы; сотрудник и ответственность, где Responsibility.employee_id = employee.id,

Иногда нам нужно обновить Responsibility.employee_id вручную, и избежать этого невозможно, иногда это нужно делать вручную. Когда мы это делаем, cayenne не видит необходимости повторно извлекать объект, поскольку он не знает, что он был обновлен.

Вопрос: я хочу полностью отключить кеширование в cayenne. Я хочу, чтобы все было получено из базы данных. Это возможно?

1 ответ

Полностью отключить кеширование - загруженный вопрос. Это может означать разные вещи в разных ситуациях. Вместо этого я отвечу, как освежить ваши отношения. Решение этой проблемы заключается в использовании предварительной выборки при выборе объектов. Например:

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

Вышесказанное дает вам новые объекты ответственности и обновляет их отношение к сотруднику.

Другие вопросы по тегам