Как заменить JpaTemplate выполнить и JpaCallback в Spring4 - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть проект для обновления с 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 были удалены.Может ли кто-нибудь помочь мне прояснить это и помочь в преобразовании приведенного выше кода или указать на некоторые конкретные примеры кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...