Capitulo Llaves primarias y secundarias

  • A veces necesitamos conocer el nombre y el valor de una llave primaria definida con @ID

  • o la lista de valores o nombres de las llaves secundarias definidas con @Secondary

Método

Descripciòn

String primaryKeyValue(T t2)

Devuelve el valor del atributo definido como llave primaria

String primaryKeyName(T t2)

Devuelve el nombre del atributo definido como llave primaria

Map<String,String> primaryKey(T t2)

Hashmap con el atributo primario y el valor

Map<String, String> secondaryKey(T t2)

Hashmap de las llaves secundarias con sus valores,

Boolean primaryKeyIsInteger(T t2)

Devuelve true si la llave primaria es tipo Integer y false si es String

Integer primaryKeyValueInteger(T t2)

Devuelve el valor de una llave primaria que es de tipo entero

T primaryKeyValueToUpper(T t1)

Convierte el valor de la llave primaria a mayúsculas y la devuelve en el mismo entity.

T primaryKeyValueToLower(T t1)

Convierte el valor de la llave primaria a minúsculas,

T primaryKeySetValue(T t1, String valueOfPrimaryKey)

Asigna un valor a la llave primaria y la devuelve al entity

T secondaryKeyValueToUpper(T t1)

Convierte el valor de la llave Secundaria a mayúsculas y lo devuelve en el mismo entity

T secondaryKeyValueToLowe(T t1)

Convierte el valor de la llave secundaria aminuscula

HashMap<String, Object> secondaryKeyValueObject(T t2)

Devuelve un Hasmap de las llaves secundarias con su valor

Object getPrimaryKeyValue(T t2)

Devuelve el valor de la llave primaria como object

String getPrimaryKeyType(T t2)

Devuelve el tipo de la llave primaria

T secondaryKeySetValue(T t1, String nameOfSecondaryKey, String valueOfSeconddaryKey)

Asigna el valor de la llave secundaria espeficada por el nombre del atributo y el valor

List<SecondaryKey> getSecondaryKeyList()

Lista de llaves secundarias

Ejemplo:

String primarykeyvalue = repository.primaryKeyValue(entity);

Recorrer un hashmap

      HashMap<String, String> map = rolRepository.secondaryKey(rol);

     Set set = map.entrySet();
      Iterator iterator = set.iterator();
      while(iterator.hasNext()) {
         Map.Entry mentry = (Map.Entry)iterator.next();
         System.out.print("key is: "+ mentry.getKey() + " & Value is: ");
         System.out.println(mentry.getValue());
      }

Ejemplo en donde se valida por el tipo de llave primaria

  • Verifica el tipo de la llave primaria

  • Obtiene el valor correspondiente y elimina el documento

   String nameOfPrimaryKey = repository.primaryKeyName(entity);
            Boolean deleted =false;
            if(repository.primaryKeyIsInteger(entity)){
                //si es llave primaria  de tipo Integer
                Integer value=repository.primaryKeyValueInteger(entity);
                if (repository.delete(nameOfPrimaryKey,value)) {
                    deleted =true;
                }else{
                    JmoordbUtil.errorMessage(nameOfMethod()+ " "+   repository.getException().toString());
                }
            }else{
                //si es llave primaria de tipo String
                String value= repository.primaryKeyValue(entity);
                if(repository.delete( nameOfPrimaryKey, value)){
                    deleted=true;
               }else{
                    JmoordbUtil.errorMessage(nameOfMethod()+ " "+   repository.getException().toString());
                }

            }

Ejemplo

Usando primaryKeyValueToUpper(entity);

    Rol rol = new Rol();
    rol.setIdrol("test");

    rol= rolRepository.primaryKeyValueToUpper(rol);

    //Salida seria
    System.out.println("idrol=" +rol.getIdrol());
    // TEST

Last updated