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

ORM для подъема: Mapper или JPA?

Я создаю небольшое приложение для своей компании в Lift. Я новичок в Scala/Lift, поэтому я использую этот шанс для практики. Теперь у меня вопрос о том, какую систему ORM использовать.

С одной стороны, Mapper является лифтом по умолчанию. С другой стороны, я читал, что он не очень хорош в определенных областях и будет заменен на Record (который еще не задокументирован, поэтому так сложно следовать новому пользователю, как я).

Напротив Mapper у нас есть JPA: стандартная Java, проверенная и надежная ORM с надежными реализациями, такими как Hibernate, но не совсем "scala -ish", и вы теряете возможности, предоставленные по умолчанию Mapper из-за его интеграции с Lift.

Я прочитал в списках рассылки некоторые утверждения о том, что JPA становится для него лифтом, но это не выглядит широко распространенным. Кто-нибудь может принести свет в этот вопрос?

Спасибо!

4b9b3361

Ответ 1

Это зависит от того, что вам нужно. Если у вас есть модель, которая сильно использует отношения наследования и отношения "один-два-ко-многим", вам может быть лучше с JPA.

Однако, если вам нужен быстрый поворот, Mapper - это путь. Mapper/Crudify - отличная пара лесов, и эту мощь трудно превзойти.

Ответ 2

Теперь я сталкиваюсь с одной и той же дилеммой:) Учтите, что Mapper/Record не более Scalish, а JPA/Hibernate (например, в Mapper и Record вы используете изменяемые объекты). Проверка фрагментов Использование "неизменяемых" Scala объектов с Hibernate и Отображение опции Scala в спящем режиме, чтобы увидеть, как вы можете использовать Hibernate довольно масштабируемым способом. Поэтому, если вы уже знаете Hibernate и с ним комфортно, вам лучше пойти этим путем. В противном случае для небольшого проекта вы можете попробовать Mapper.