私はこれをまったく正しく行っていない可能性があります。
現在ログインしているユーザーの詳細を含むオブジェクトを初期化してセッションスコープに保存しています。
CFC はプロバイダーと呼ばれ、ユーザーが正常にログインすると、次のように呼び出します。
session.Provider = New model.Provider().init(loginResult.ProviderID);
指定した値を空の文字列に設定する resetValues という CFC のメソッドがありますが、値をリセットするとエンティティを保存する方法がわかりません。
ここに完全な CFC があります。で保存しようとしていますがentitySave( this );
、機能しません。この変更を保存 (永続化) する方法について何か提案はありますか? それとも、これらの値を変更する方法を完全に再考する必要がありますか?
よろしくお願いします。
component persistent="true" table="provider" {
property name="id" fieldtype="id" column="provider_id";
property name="title" ormtype="text";
property name="status" ormtype="integer";
property name="email" ormtype="text";
property name="ext_src" ormtype="text";
property name="ext_src_login1" ormtype="text";
property name="ext_src_login2" ormtype="text";
property name="ext_src_login3" ormtype="text";
property name="ext_src_login4" ormtype="text";
//property name="rooms" fieldtype="one-to-many" cfc="Room" fkcolumn="provider_id";
//init()
public function init(providerID="0"){
variables.providerID = arguments.providerID;
return this;
}
//get()
public function get(){
return entityLoadByPK("Provider",variables.providerID);
}
//resetValues()
public function resetValues(){
this.setExt_src_login1('');
this.setExt_src_login2('');
this.setExt_src_login3('');
this.setExt_src_login4('');
entitySave(this);
}
}
次のエラーが表示されます。a different object with the same identifier value was already associated with the session