2014-01-02 7 views
1

Я новичок в JPA, и я понимаю, что JPA - это интерфейс, который реализует связь Hibernate и eclipse. Могу ли я реализовать его сам? или использовать JPA без ссылки на Hibernate или eclipse?Могу ли я реализовать свою собственную JPA?

все учебники и примеры, которые я видел, что касается одной из реализаций, но для этого ответа: What is a JPA implementation?

Если вы хотите, чтобы ваше приложение, чтобы быть портативным, используйте только JPA.

Как я могу использовать только JPA? кто-нибудь знает, для такого учебника написать свой собственный PersistenceProvider (я думаю, это то, что мне нужно делать.)

Спасибо.

+2

Я думаю, что вы не понимаете. Вы должны использовать только JPA _ в вашем коде. т. е. ваш код должен быть независимым от Hibernate и EclipseLink. Затем вы «подключаете» выбранную вами реализацию в приложение во время выполнения. –

+0

Я не думаю, что так легко написать собственную реализацию JPA ... – Lucas

+0

Я думаю, что это так, но как я могу это сделать? все документы, которые я видел в JPA, относятся к Hibernate и EclipseLink. реализует PersistenceProvide поможет мне? если не то, что будет? – user2515512

ответ

1

Вы не должны создавать свою собственную реализацию JPA, но использовать API JPA и полагаться на реализацию, такую ​​как Hibernate или EclipseLink. Пока вы используете классы/интерфейсы в пространстве имен javax.persistence (или, если хотите, пакет), вы будете строго использовать JPA.

0

Единственная причина для внедрения JPA заключается в том, что вы являетесь поставщиком-производителем ORM на уровне предприятия, таким как Hibernate или iBatis.

JPA - это стандартная оболочка для существующих продуктов ORM, это возможность использовать ее в качестве обертки для вашего ORM. Он не может быть использован (насколько я знаю) из ORM.

Это в случае, если ваше решение заключается в использовании ORM для доступа к базе данных. Вы должны учитывать каждый вариант: подходит ли JDBC для вашей работы? Будет ли слой абстракции объекта приносить что-либо в ваше приложение? Есть ли какое-либо унаследованное условие, которое вы должны учитывать (например, тонны кода в PL/SQL, которые скрывают от вас таблицы), которые заставили бы вас отказаться от ORM?

Смежные вопросы