Документ EclipseLink не объясняет “сессию”

Я пытаюсь выполнить использование запроса EclipseLink после дрянной документации по http://wiki.eclipse.org/Introduction_to_EclipseLink_Expressions_%28ELUG%29, но каждый раз необходимо выполнить Выражение, это использует переменную, названную "сессией", но не где это объясняет, куда эта переменная "сессии" прибывает из. У меня уже есть файл persistence.xml, и я могу выполнить javax.persistence. Запрос на моей базе данных, таким образом, я знаю работы соединения, но я не могу выяснить, куда "сессия" прибывает из. Немного справки?

Вопрос о стороне: Мне было ужасно трудно пытаться заставить EclipseLink работать, даже при том, что все говорят, как большой это сравнивается, в спящем режиме. Действительно ли EclipseLink стоит моего времени и разочарования, или я должен просто фрагментировать его и попробовать что-то, любят, в спящем режиме вместо этого?

Спасибо

5
задан Ross Peoples 23 June 2010 в 22:17
поделиться

4 ответа

Предлагаю прочитать это.

В EclipseLink существуют различные виды сеансов. Не вдаваясь в подробности, можно сказать, что сеанс — это что-то вроде транзакции. В EclipseLink сеанс часто является единицей работы, которая знает, какие сущности были изменены/добавлены/удалены или что-то еще.

Вы можете получить такой сеанс в EclipseLink при вызове следующего проприетарного API в JPA EntityManager:

//EntityManagerImpl has to be imported as org.eclipse.persistence.internal.jpa.EntityManagerImpl
Session session = ((EntityManagerImpl) entityManager).getActiveSession();

Прежде чем вызвать его, вы должны быть уверены, что находитесь в транзакции.

4
ответ дан 13 December 2019 в 19:21
поделиться

EclipseLink рожден в результате пожертвования Oracle Toplink Eclipse Foundation, который, как и Hibernate, является проприетарным API сохраняемости и предшествует JPA. Таким образом, как и Hibernate, он полагается на проприетарный движок и проприетарные концепции или абстракции. Сеанс EclipseLink является одним из них (и отличается от сеанса Hibernate, который более сопоставим с EclipseLink UnitOfWork).

Вот где приходит на помощь JPA. JPA предоставляет унифицированный и стандартизованный API, который реализован в таких продуктах, как EclipseLink или Hibernate. Это не означает, что они удалили проприетарные функции, и, если вы не против того, чтобы их нельзя было переносить, вы можете их использовать. Опубликованная ссылка о выражениях является примером.

Теперь, если вы хотите использовать и изучать JPA, вам следует придерживаться JPA (и это был бы мой совет).Если вы хотите использовать проприетарные функции, вам нужно будет кое-что узнать о базовом механизме сохраняемости.

Что касается документации EclipseLink, я не могу сказать, что она мне нравится, даже если мне удастся найти свой путь, возможно, потому, что у меня уже есть некоторый опыт работы с JPA. Но это субъективно, я полагаю, и другие люди могут иметь другое мнение (я не согласен, но, как я уже сказал, это субъективно).

Однако Hibernate, несомненно, более популярен и имеет более широкое сообщество, больше руководств и т. Д., И я считаю их документацию очень хорошей. Я не знаю, на чем вы основывали свой выбор, но с точки зрения поддержки сообщества Hibernate определенно выигрывает. Просто имейте в виду, что это не значит, что вы тоже не разочаруетесь в Hibernate :)

4
ответ дан 13 December 2019 в 19:21
поделиться

Стоит ли EclipseLink моего времени и разочарований, или я должен просто отказаться от него и попробовать что-то вроде Hibernate?

Вам решать, «стоит ли оно того» для ты.

Но я хотел бы отметить, что потраченное впустую время и разочарование при изучении новых технологий - это всего лишь часть задания для инженера-программиста. Если вы не можете принять это, вам следует серьезно подумать о менее сложной карьере.

1
ответ дан 13 December 2019 в 19:21
поделиться

Большая часть оригинальной документации на вики EclipseLink была создана до нашей реализации JPA. Мы находимся в процессе ее обновления до гораздо более удобного набора вики-страниц, ориентированных на JPA. Большинство операций, необходимых пользователям, могут быть выполнены с помощью JPA, а с нашей реализацией JPA 2.0 возникает еще меньше потребностей в использовании родных сессий.

Можете ли вы сообщить нам, что вы пытаетесь сделать, и мы сможем предоставить прямую помощь или направить вас в документацию с наиболее подходящим содержанием.

Хотя мне нравится интерфейс stackoverflow, EclipseLink Forum предлагает наиболее активную поддержку со стороны коммиттеров проекта.

Даг

2
ответ дан 13 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: