A Propriedade Boolean ou Integer Não É Atualizada como o Valor Padrão

Siga as etapas listadas aqui como solução alternativa quando uma propriedade estendida de tipo de dados booleano ou de número inteiro não for atualizada ao ser configurada para o valor padrão.

Problema

Caso tente configurar o valor de uma propriedade estendida do tipo de dados booleano ou de número inteiro com valor único para seu valor padrão, a propriedade não é atualizada. Por exemplo, caso tente configurar o valor de um tipo de dados de número inteiro com valor único para qualquer valor que não seja 0, que é o valor padrão, a atualização ocorre com sucesso. No entanto, caso tente configurá-lo para seu valor padrão 0, a propriedade não é atualizada. De forma semelhante, caso tente configurar o valor de uma propriedade estendida do tipo de dados booleano como true, atualização ocorre com sucesso. No entanto, caso tente configurar a propriedade para seu valor padrão false, o valor não é atualizado.

Isso ocorre apenas quando a propriedade estendida é definida como com valor único. Esta é uma limitação do EMF.

Solução Alternativa

Conclua as etapas a seguir para resolver esse problema.

Nota: Antes de usar os fragmentos de código de amostra em seu aplicativo, assegure-se de ter lido as informações e concluído as etapas descritas no tópico Pré-requisitos de Programação.
  1. Use o método createSchema() no código do aplicativo para criar uma nova propriedade estendida de tipo de dados booleano ou de número inteiro com diversos valores configurado como true.

    Para obter detalhes, consulte Código de Amostra para Estender o Esquema no Repositório de Arquivo, Código de amostra para estender o esquema no repositório de extensão de propriedade e Código de Amostra para Estender o Esquema em um Repositório LDAP.

    Também é possível usar o comando wsadmin addIdMgrPropertyToEntityTypes para criar uma nova propriedade estendida de tipo de dados booleano ou de número inteiro com diversos valores configurado como true.

    Nota: Também é possível alterar a definição de uma propriedade estendida existente com valor único para diversos valores ao editar diretamente o arquivo wimxmlextension.xml, embora isso não seja recomendado.
  2. Use os métodos create() ou update() para especificar o valor da nova propriedade como seu valor padrão, ou seja, false para booleano e 0 para número inteiro. O valor da propriedade deve ser atualizado com sucesso.
    O código de amostra a seguir é um exemplo de como usar o método create() para configurar o valor padrão 0 para uma propriedadecom diversos valores de tipo de dados de número inteiro:
    DataObject root = SDOHelper.createRootDataObject();
    DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_PERSON_ACCOUNT);
    // Configurar as propriedades da pessoa
    entity.set("uid", uid);
    entity.set("cn", cn);
    entity.set("sn", sn);
    // Criar uma nova lista de matriz de tamanho um
    List lst = new ArrayList();
    lst.add(0);
    entity.set("jersyNumber", lst );
    System.out.println("Gráfico de dados de entrada antes de criar o usuário"+ printDO(root));
    // Criar a entidade PersonAccount
    root = service.create(root);
    // Imprimir o gráfico de dados de saída
    System.out.println("Gráfico de dados de saída depois de criar o usuário"+ printDO(root));
    return root;


Termos de uso | Feedback