Насколько зрелым является Ebean или Siena?

В последнее время я слышал много жалоб на спящий режим. И действительно, у меня есть некоторые болезненные переживания в спящем режиме. Итак, я прочитал о Ebean и Сиене.

У обоих есть интересные подходы. К сожалению, слои доступа к базе данных очень легко написать, но если ваш проект растет и вам приходится работать с большими таблицами базы данных, вы знаете, хороши они или нет. Так что действительно сложно оценить такой инструмент. Hibernate хорошо известен, и вы можете быть уверены, что сможете решить свою проблему с ним. Иногда нужно многому научиться, но вы можете решить это.

Как это с Ebean? Есть ли реальные приложения? Какие базы данных поддерживаются? Это надежно?

После поиска немного больше, я вижу, что есть намного больше ORM-фреймворков, так есть ли хотя бы один надежный?

5 ответов

Решение

Роб (Ebean Committer) здесь.

Сейчас Ebean более 4 лет. Я бы сказал, что это довольно зрелый сейчас. Поддерживаемые базы данных включают Oracle, MySql, Postgres, H2 и SQL Server (и недавно SQLite). Ebean занимается тем, что другие ORM не такие, как Autofetch (автоматическая настройка запросов), поэтому я не совсем согласен с "рейтингом зрелости". IMO Сообщество Ebean относительно небольшое, поэтому вам, вероятно, нужно попасть в группу Ebean google, чтобы привлечь их.

Любые приложения в реальном мире? Да, но лучше всего спросить об этом сообщество Ebean. Конечно, есть хорошая поддержка пакетной обработки (размер пакета, очередь на каскад, сохраняющаяся для транзакции и т. Д.) И поддержка больших запросов, которую я не вижу в JPA и т. Д. (Вы можете получить что-то похожее с поддержкой Sessionless в Hibernate).

Надеюсь, это все равно ответит на некоторые мелкие вопросы вашего вопроса.

Ура, Роб.

Я в настоящее время разработчик Сиены, но не так давно. Позвольте мне объяснить, почему я стал разработчиком этого проекта? Я пошел в Сиену, потому что хотел использовать Play+GAE, и Сиена оказалась хорошим началом для GAE DB, и я действительно хотел избежать JDO/JPA. Затем я стал по-настоящему ценить Сиену за ее простой, легкий и простой подход и очень простые API. Он не претендует на то, чтобы быть уровнем абстракции "все в одном", как JDO, и самым большим стандартным API БД, таким как JPA. Это действительно заставило меня задуматься о API-интерфейсах БД из Python/Ruby, и это действительно соответствует моей точке зрения: я хочу простой API-интерфейс БД, который позволит мне решить большую часть моих проблем, а когда возникнет более сложная проблема, я буду использовать API нижнего уровня, но, конечно, не уровень абстракции, такой как спящий режим.

Возможность заставить мой код работать на GAE DB или JDBC также была хорошим аспектом. Еще раз, Сиена не претендует на то, чтобы предоставлять одинаковые вещи в обоих мирах, потому что SQL и NoSQL на самом деле не совместимы (но ORM не совсем совместим с моделью SQL:)). Но опять же, вполне практично иметь возможность полагаться на одни и те же API в нескольких БД.

Наконец, библиотека - ОДНА банка, и вам не нужно извлекать всю вселенную, чтобы использовать ее.

Итак, я постепенно стал приверженцем Сиены, потому что хотел принять участие в этом милом маленьком приключении. Сейчас команда siena работает над новой версией, сохраняя те же простые API-интерфейсы, предлагая новые интересные функции и реально улучшая весь бэкэнд-код, чтобы сделать его еще проще для поддержки новой БД. Сиена - это прагматичный API, основанный на опыте пользователей, и поэтому он мне нравится;)

паскаль

Помимо Ebean и Сиены:

Вы можете попробовать JIRM, который ориентирован на CRUDing неизменных объектов (да, я автор).

Также есть JOOQ и Joist.

Я чувствую, что JIRM минимизирует количество DTO, потому что доменные объекты являются неизменяемыми и не наследуют, не реализуют и / или не являются "улучшенными / инструментальными". Такое не то же самое с Сиеной и Ebean.

Кроме того, поскольку объекты являются неизменяемыми, больше внимания уделяется обновлению каждого столбца, а не всего объекта, что имеет больше смысла с учетом современных интерфейсов AJAX (по сравнению со старой моделью POST всей модели компонента).

У нас был действительно большой опыт работы с MyBatis, который сам по себе не является ORM, а представляет собой еще один класс персистентного менеджера, SQL Mapper. Используя его, вы начинаете с операторов SQL и указываете, как отобразить строки результатов в POJO. Это концептуально легко понять и настроиться, если внутри не так много магии. Это идеально, если вы знакомы с SQL или вам нужно работать с установленной схемой.

Как насчет использования EB3, например, с JBoss (www.jboss.org)?

Другие вопросы по тегам