WikiDer > Ebean
Разработчики) | Avaje |
---|---|
Стабильный выпуск | 10.3.2 / 25 июня 2017 г. |
Репозиторий | |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Платформа | Ява |
Размер | 1,9 МБ (в архиве) |
Тип | Объектно-реляционное отображение |
Лицензия | Лицензия Apache |
Интернет сайт | ebean-orm |
Ebean является объектно-реляционное отображение продукт написан в Ява. Он разработан таким образом, чтобы его было проще использовать и понять, чем JPA (Java Persistence API) или JDO (объекты данных Java).
Простой API
У Ebean более простой API, чем у JPA. Это достигается за счет 'Сессия меньше ' архитектура. Ebean не требуется JPA EntityManager или JDO PersistenceManager, и это устраняет концепции отсоединенных / прикрепленных bean-компонентов и проблемы, связанные с очисткой / очисткой и «управлением сеансом» EntityManager. Все это значительно упрощает изучение, понимание и использование Ebean API.
Реляционные особенности
Хотя Ebean имеет полные функции ORM (эквивалент JPA), он также включает в себя функции SQL / Relational. Идея состоит в том, что многие усилия по разработке требуют контроля над конкретным sql, вызовом хранимых процедур или проще решаются с помощью «реляционных» подходов. Конечная цель Ebean - объединить лучшие функции ORM из JPA с лучшими «реляционными» функциями таких продуктов, как MyBatis, в единую структуру персистентности.
Объектно-реляционное отображение
Ebean использует то же сопоставление, что и JPA, с аннотациями @Entity, @Table, @OneToMany и т. Д. И xml. Сопоставление компонентов Entity должно быть совместимо между Ebean и JPA.
Выходя за рамки JPA Ebean поддерживает Java Generics и получение «частичных» объектов с помощью своего объекта Query.
Примеры
// находим покупателя по idПокупатель покупатель = Ebean.найти(Покупатель.класс, 1);// Сохраняем изменения объекта клиентапокупатель.спасти();// более сложный запрос с объединениямиСписок<порядок> порядок = Ebean.найти(порядок.класс) .принести("покупатель") .принести("customer.billingAddress") .принести("customer.shippingAddress") .принести("подробности") .принести("детали.продукт", "имя") .где().экв("shipDate", сегодня) .findList();