1

我第一次在一个项目中使用 Cayenne。到现在为止,我一直在使用 SelectQuery 并且很喜欢它。我现在需要更新一个对象,例如我的User对象包含一个emailId属性。当用户需要更新他/她的电子邮件时,我会使用现有User对象并emailId使用用户提供的新值更新属性。

问题从现在开始,我不明白将更新持久化到数据库的方式。我的选项似乎仅限于SQLTemplate或使用EJB QL。我对吗?是否有更优雅的方式将更新的对象提供给DataContext数据库并将更新持久化到数据库?

我在 Web 应用程序中使用 Cayenne,并通过WebApplicationContextFilter.

4

1 回答 1

1

是的,当然有更优雅的方式。您对对象进行一个或多个更改,然后通过最初用于获取对象的 ObjectContext 提交它们:

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();

最后一行将您的所有更改发送到数据库。

于 2013-01-22T19:15:41.907 回答