Поддерживает ли Playframework (Ebean ORM) управляемые объекты?

Я начал работать над новым проектом с использованием Playframework и подумал попробовать использовать его с Ebean ORM. Теперь мне интересно, поддерживает ли Play с реализацией Ebean управляемые объекты, и если да, то как? Возьмите этот пример метода из контроллера:

@Transactional
public Result changePassword() {
    Long userId = Long.valueOf(session("id"));
    User user = User.find.byId(userId);
    user.setName("John Doe");
}

Есть ли способ сохранить изменения в базе данных после завершения транзакции? В настоящее время я звоню user.save(). Это немного, но, работая с JEE/JPA (а недавно и с Dropwizard), я привык к тому, что изменения моих сущностей сохраняются после завершения транзакции.


person mvlupan    schedule 30.08.2014    source источник


Ответы (1)


Нет, я не думаю, что Play изначально поддерживает что-то вроде автоматического сохранения транзакции, как вы хотите. Явный метод сохранения является единственным вариантом.

Ebean.save(xyz);

Общее предложение по вашему коду, из Play 2.3.x. В вашем случае не нужно комментировать или явно упоминать транзакцию, если «Сохранить» — единственное действие для пользователя EBean. По умолчанию каждое действие над EBeans будет выполняться в отдельных транзакциях. Можно явно указать транзакцию, если в одной транзакции необходимо выполнить несколько действий.

person user3366706    schedule 30.08.2014
comment
Да, я читал о новой функции автоматического переноса транзакции при вызове Ebean.{action}. Спасибо за ваш ответ - person mvlupan; 31.08.2014