seam 2.1.2セキュリティを使用しており、jsfrichfacesGUIによるidentitymanagerを使用してロールを作成しています。作成プロセスでは、データベースで作成されたロールに「説明」を追加します。ロールの作成は問題ありませんが、説明フィールドは追加されません。データベースに保存されている説明フィールドを表示するには、(GUIによる他の操作で)ロールを更新する必要があります。 。問題は、作成操作で提出された「説明」を保存するために何をすべきかということです。
以下は私のコードです:
public boolean createRole(Role role) {
IdentityManager identityManager = IdentityManager.instance();
logger.info("creating role:" + role.getRoleName());
if (identityManager.roleExists(role.getRoleName())) {
return false;
}
if (identityManager.createRole(role.getRoleName())) {
completeRolePersistence(role);
return true;
}
return false;
}
およびcompleteRolePersistenceメソッド:
public void completeRolePersistence(Role role) {
logger.info("setting additional info to role...");
Query query = em.createNamedQuery("UPDT_ADDITIONALS");
query.setParameter("name", role.getRoleName())
.setParameter("description", role.getDescription())
.setParameter("level", role.getRoleLevel());
int updated = query.executeUpdate();
logger.info("roles updated with desc : " + updated);
}
クエリが実行されていないようです。ログに出力します
roles updated with desc : 0