@Override
 public List<Account> searchUsers(String username) {
   return create()
       .select(ACCOUNT.fields())
       .from(ACCOUNT)
       .join(CREDENTIAL)
       .on(CREDENTIAL.ACCOUNT_ID.eq(ACCOUNT.ID))
       .where(
           ACCOUNT
               .STATE
               .eq(CommonStatesConstants.ACTIVE)
               .and(CREDENTIAL.STATE.eq(CommonStatesConstants.ACTIVE))
               .and(CREDENTIAL.PUBLIC_VALUE.contains(username))
               .and(CREDENTIAL.KIND.eq(CredentialConstants.KIND_PASSWORD)))
       .orderBy(ACCOUNT.ID.asc())
       .fetchInto(Account.class);
 }
 @Override
 public Account getByUsername(String username) {
   try {
     return create()
         .select(ACCOUNT.fields())
         .from(ACCOUNT)
         .join(CREDENTIAL)
         .on(CREDENTIAL.ACCOUNT_ID.eq(ACCOUNT.ID))
         .where(
             ACCOUNT
                 .STATE
                 .eq(CommonStatesConstants.ACTIVE)
                 .and(CREDENTIAL.STATE.eq(CommonStatesConstants.ACTIVE))
                 .and(CREDENTIAL.PUBLIC_VALUE.eq(username)))
         .and(CREDENTIAL.KIND.eq(CredentialConstants.KIND_PASSWORD))
         .fetchOneInto(AccountRecord.class);
   } catch (InvalidResultException e) {
     throw new ClientVisibleException(ResponseCodes.CONFLICT, "MultipleOfUsername");
   }
 }