Перезагрузка сохраненного объекта - PullRequest
0 голосов
/ 12 января 2010

Я использую OpenJPA в своем приложении в качестве поставщика JPA.

Вопрос теоретический или концептуальный:

Есть ли какой-либо способ сказать менеджеру сущности загрузить сущность изБД, а не из ее кеша?

Проблемный сценарий:

EM1.persist(Entity1)
EM2.merge(Entity1)
EM1.find(Entity1)  <--- Entity1 is the cached version rather than the merged one..

Какой-нибудь элегантный способ сделать это?Я действительно не хочу звонить em.refresh(entity).

1 Ответ

1 голос
/ 07 апреля 2010

Если у вас есть доступная сущность, то em.refresh (entity) - это самый чистый способ принудительной перезагрузки сущности.

Если у вас нет доступного объекта, вы можете позвонить:

EM1.clear(); // all entities are detached - might not be desired.  
EM1.find(Entity1);

В JPA 2.0 вы также можете явно отсоединить сущность (но я не считаю это лучше, чем em.refresh ()):

EM1.detach(Entity); 
EM1.find(Entity1);
...