У меня есть проект для обновления с Spring3.2 до последней версии Spring или, по крайней мере, до Spring 4.3.x.Есть некоторые объекты orm, которые JpaTemplate / JpaCallback впервые устарели, а в Spring4 они полностью удалены.
<T> T findSingle(final RepositoryQuery query, final QueryOption options) {
try {
T result = (T) getJpaTemplate().execute(new JpaCallback() {
@Override
public Object doInJpa(EntityManager entityManager) throws PersistenceException {
QueryTranslator translator = new QueryTranslator();
javax.persistence.Query ejbQuery = translator.translate(entityManager, query, options);
return ejbQuery.getSingleResult();
}
});
addToIdentitySet(result);
return result;
} catch (EmptyResultDataAccessException e) {
return null;
} catch (RuntimeException e) {
throw new RepositoryException(e);
}
}
Spring4 предполагает, что вся эта работа JpaDaoSupport / JpaTemplate / JpaCallback может быть выполнена непосредственно через EntityManager, но я не нашел хорошего примера, охватывающего все различные типы случаев использования.Я думаю, что простые операции, такие как сохранение / удаление и т. Д., Могут быть легко преобразованы, но некоторые сложные коды, подобные описанным выше, не так просты.Может кто-нибудь подсказать, как преобразовать код как выше для запуска в Spring4.
Кроме того, я не нашел причину, по которой эти объекты Jpa были удалены.Может ли кто-нибудь помочь мне прояснить это и помочь в преобразовании приведенного выше кода или указать на некоторые конкретные примеры кода.