Подтвердить что ты не робот

Насколько зрелым является Эсэя или Сиена?

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

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

Как это происходит с Ebean? Существуют ли приложения реального мира? Какие базы данных поддерживаются? Надежность?

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

4b9b3361

Ответ 1

Rob (Ebean Committer) здесь.

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

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

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

Приветствия, Роб.

Ответ 2

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

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

Наконец, библиотека является ОДНОЙ банкой, и вам не нужно извлекать всю вселенную для ее использования.

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

Паскаль

Ответ 3

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

Ответ 4

Кроме Ebean и Siena:

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

Существует также jOOQ и Joist.

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

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

Ответ 5

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