Spring Data JPA и SimpleJPA / SimpleDB

Мне интересно, можно ли указать SimpleJPA в качестве поставщика постоянства, используемого Spring-Data-JPA. Я не эксперт по JPA, поэтому надеюсь, что этот вопрос не глупый. Это так же просто, как просто указать фабрику диспетчера сущностей SimpleJPA в файле persistence.xml? Мне еще предстоит найти где-нибудь в Интернете, где кто-то использовал бы Spring-Data-JPA для подключения к Amazon SimpleDB, мне бы очень понравилось, если бы кто-то мог указать мне в правильном направлении.


person Devon Moss    schedule 22.10.2011    source источник


Ответы (2)


Как правило, настройка поставщика сохраняемости - это всего лишь вопрос настройки EntityManagerFactory через контекст Spring (в случае использования контейнера Spring). Взгляните на как настроить EntityManagerFactory экземпляры Spring.

Возможно, потребуется реализовать пользовательский JpaVendorAdapter, чтобы позволить Spring правильно использовать реализацию SimpleDB JPA. Для некоторых расширенных функций (например, с использованием разбивки на страницы с вручную определенными запросами) нам придется немного подправить кодовую базу Spring Data JPA. Если вы хотите увидеть эту поддержку, не стесняйтесь открывать заявку в нашей JIRA.

person Oliver Drotbohm    schedule 11.11.2011
comment
Спасибо, Оливер. Как обычно, ваш ответ помог мне добиться успешной реализации. Буквально пару дней назад мы решили перейти на MongoDB. Я обнаружил, что это лучшее решение для нашего проекта, и использование Spring Data с MongoDB было абсолютно беспроблемным. Спасибо за ваш ответ и спасибо за всю работу, которую вы делаете над Spring Data. - person Devon Moss; 16.11.2011
comment
Будет ли проблема с тем, что SimpleJPA основан на JPA1.0? - person f.khantsis; 07.04.2014
comment
Я не понимаю вопроса? Что такое SimpleJPA? - person Oliver Drotbohm; 08.04.2014
comment
JPA поверх AWS Simple DB. github.com/appoxy/simplejpa Это третья сторона, но команда Amazon одобряет ее, даже используя для своих демонстрационный проект TravelLog. Это JPA1.0, а не 2.0. Есть ли способ заставить его играть с spring-data-jpa? В качестве альтернативы я могу использовать github.com/3pillarlabs/spring-data-simpledb - person f.khantsis; 09.04.2014
comment
Нет, для Spring Data JPA требуется JPA 2.0. Помимо того факта, что я не совсем понимаю, зачем использовать API на основе JPA для доступа к хранилищу NoSQL :). Фактически вы можете использовать две или три аннотации, но все остальное вряд ли имеет смысл: что делает откат транзакции в MongoDB? - person Oliver Drotbohm; 10.04.2014
comment
Я не эксперт по Spring-orm, но предполагал, что Spring может выполнять свои собственные транзакции в памяти, отправляя все обновления при нажатии на фиксацию. - person f.khantsis; 10.04.2014
comment
В любом случае я также могу использовать интерфейс запросов. Самое главное, JPA обеспечивает переносимость, поэтому, если я хочу переключиться на RDS, я могу. Думаю, у меня два варианта: портировать SimpleJPA на JPA2.0 или придерживаться spring-data-simpledb. - person f.khantsis; 10.04.2014
comment
Самое главное, JPA обеспечивает переносимость. Обещает, но не дает. Если вы когда-либо переносили приложение из Hibernate в EclipseLink, вы знаете, о чем я говорю. Однако использование аннотаций из JPA не означает, что вы реализуете JPA, следовательно: нет переносимости, но подход «потемкинской деревни». Предполагать переносимость кода из нереляционного хранилища в реляционное - это вообще довольно странная вещь. Но я не хотел обходить это здесь стороной :). - person Oliver Drotbohm; 10.04.2014

Я только что нашел этот проект и заставил его работать для наших Spring Data + SimpleDB потребностей:

https://github.com/3pillarlabs/spring-data-simpledb

Документация довольно хороша, и все наладить и запустить было довольно просто. Я получал доступ к SimpleDB через Spring Data, потратив около 10 минут.

person gMale    schedule 22.05.2013
comment
Я думаю, что исходный плакат имел в виду JPA, а не SimpleDB, но спасибо за указатель на этот классный проект! :) - person Oliver Drotbohm; 08.04.2014