我第一次在一个项目中使用Cayenne。直到现在,我正在使用SelectQuery并且非常喜欢它。我现在需要更新一个对象,例如我的User
对象包含emailId
属性。当用户需要更新他/她的电子邮件时,我会使用现有的User
对象并使用用户提供的新值更新emailId
属性。
问题现在开始了,我不明白将更新持久化到数据库的方法。我的选项似乎仅限于SQLTemplate
或使用EJB QL
。我对吗?是否有更优雅的方式将更新的对象提供给DataContext
并将更新持久保存到数据库?
我在网络应用程序中使用Cayenne并通过WebApplicationContextFilter
获取上下文。
答案 0 :(得分:1)
ObjectContext context = ...
List<MyEntity> objects = context.performQuery(...);
MyEntity o = objects.get(0);
o.setXyz("new value"); // I assume you got to this point
...
context.commitChanges();
最后一行将所有更改发送到数据库。