Описание тега ebean
Ebean - это инструмент объектно-реляционного сопоставления с открытым исходным кодом.
Его цель - предоставить более простую альтернативу реализациям JPA (Java Persistence API), таким как Hibernate и Eclipselink.
Для этого он предоставляет "бессеансовый" API и более простой язык запросов. Это значит:
- Нет объекта сеанса (или UnitOfWork или EntityManager)
- Нет прикрепленных или отсоединенных бинов
- Нет merge(), persist(), flush() или clear(). Вместо этого в Ebean есть save() и delete()
Ebean, как и JPA, имеет контекст постоянства, но имеет некоторые архитектурные отличия, позволяющие использовать другой подход к жизненному циклу объектного компонента и устраняя необходимость в управлении EntityManager.
Почему Ebean? ... чем отличается от JPA?
Ebean использует аннотации JPA Mapping и будет очень внимательно следить за ними.
Однако Ebean был спроектирован и построен с другой точки зрения, чем JPA. Различия в архитектуре и языке запросов достаточно фундаментальны как для Ebean, так и для JPA, поэтому трудно увидеть, что эти различия исчезнут в ближайшее время.
JPA спроектирован для использования "EntityManager", который близко соответствует "Session" Hibernate и "UnitOfWork " Toplink. Это приносит с собой концепцию того, что объектный компонент может быть присоединен или отсоединен от EntityManager (со связанными операциями слияния, очистки и т.д.). Если EntityManager используется в нескольких транзакциях, EntityManager обычно должен управляться EJB Session Bean, Seam, Spring или аналогичным контейнером / фреймворком.
Ebean спроектирован так, чтобы не требовать EntityManager (или объект Session или UnitOfWork) с целью упростить его использование и удалить требование для управления объектами EntityManager (также известный как другой подход к управлению жизненным циклом).
Хотя Ebean не имеет EntityManager, у него ДЕЙСТВИТЕЛЬНО есть "контекст постоянства" (например, JPA), и по умолчанию в Ebean контекст постоянства имеет область действия транзакции и автоматически управляется.