хочу разработать свой проект в Google App Engine. Я хочу использовать большую таблицу Google в качестве базы данных. Для базы данных у меня есть два варианта JPA и JDO. Вы, ребята, пожалуйста, предложите мне это? Оба новые для меня, и мне нужно их изучить. Поэтому я буду сосредоточен на одном после ваших ответов.
Разница между JPA и JDO?
Ответ 1
Поскольку вы используете Data Nucleus, см. их FAQ в JDO против JPA. http://www.datanucleus.org/products/accessplatform_2_1/jdo_jpa_faq.html
DataNucleus AccessPlatform поддерживает спецификации JDO и JPA для сохранения Java. Таким образом, он не имеет никакого "интереса" к любой из технологий, полагая, что именно пользователям выбирать, какой из них им нравится. В Интернете было много фактов о JDO и JPA, которые в значительной степени осуществлялись поставщиками РСУБД. Этот FAQ исправляет многие из этих пунктов.
Ответ 2
Ключевым отличием является то, что JDO поддерживает модель с богатым доменом (логика вместе с данными), на самом деле все постоянные классы могут ссылаться на текущий PersistenceManager, выдавать запросы, и, я думаю, возможно, что у них нет постоянных полей по умолчанию.
JPA не поддерживает такой дизайн программного обеспечения. На самом деле каждый объект Entity не имеет ссылки на PersistenceManager, поэтому вам нужно прибегнуть к переменным ThreadLocal, который не является очень элегантным и надежным решением.
Ответ 3
Поскольку GAE BigTable не является РСУБД, JDO - лучший выбор. В Aphache JDO есть несколько подробных статей сравнения. Это полезно для меня.
Ответ 4
JPA сохраняет объекты Java для реляционных данных через ORM, тогда как JDO является более общей спецификацией для сохранения Java-объектов. Таким образом, использование JDO даст вам больше свободы в вариантах реализации хранилища для ваших объектов.
Ответ 5
JPA является ведущим стандартом Java для сохранения. Поэтому я скажу, что использую JPA, если вы используете РСУБД и требуете ORM.
Hibernate обычно используется как реализация JPA. Если вам нужны дополнительные функции, вы можете использовать аннотации hibernate.
Этот вопрос уже рассматривается здесь JDO против JPA для Java в Google App Engine