1

プロジェクトで初めてカイエンを使用しています。今まで、私は SelectQuery を使用していて、気に入っていました。オブジェクトを更新する必要があります。たとえば、UserオブジェクトにemailId属性が含まれています。ユーザーがメールを更新する必要がある場合、既存のUserオブジェクトを取得emailIdし、ユーザーが提供した新しい値で属性を更新します。

問題は今始まります。データベースへの更新を永続化する方法がわかりません。私が持っているオプションは、に制限されているSQLTemplateか、使用しているようですEJB QL。私は正しいですか?DataContext更新されたオブジェクトを に提供し、更新を DB に永続化するより洗練された方法はありますか?

私は Web アプリケーションで Cayenne を使用しており、 を介してコンテキストを取得していますWebApplicationContextFilter

4

1 に答える 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();

最後の行は、すべての変更をDBに送信します。

于 2013-01-22T19:15:41.907 に答える