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

Започнах да работя по нов проект с помощта на Playframework и реших да опитам да го използвам с Ebean ORM. Това, което се чудя сега, е дали Play with the 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, във вашия случай, няма нужда да пояснявате или изрично да споменавате транзакцията, ако Запазването е единственото действие на User EBean. По подразбиране всяко действие на EBeans ще се изпълнява в отделни транзакции. Може изрично да посочи транзакцията, ако трябва да се изпълнят множество действия в една транзакция.

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