我开始使用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)合作,我习惯于在交易结束时保持我的实体更改。
答案 0 :(得分:0)
不,我不认为Play本身支持自动保存事务,如您所愿。显式保存方法是唯一的选择。
Ebean.save(XYZ);
关于您的代码的一般建议,来自 Play 2.3.x ,在您的情况下,如果Save是User EBean上的唯一操作,则无需注释或明确提及事务。默认情况下,EBeans上的每个操作都将在单独的事务中执行。如果需要在单个事务中执行多个操作,则可以显式指定事务。