O teu result set não vai ter nenhuma coluna 'nickName' mas sim uma 'userFraudNickName' e uma 'userRiggedNickName'. Mas alguma coisa continua a tentar ler a coluna nickName...
brucsantos
Alguma ideia de como resolver isso?
Abraçoss
B
bernert
Bom dia brucsantos,
Poderia postar a classe responsável por chamar o select e pegar os resultados?
Att,
Guilherme Bernert
brucsantos
Posso sim, esse problema eu resolvi de outra forma… mais posto a forma que estava tentando.
packagebr.com.mercadolivre.fraudesshml.domain.repository;publicclassFraudRepositoryextendsAbstractRepository<Fraud>{@OverridepublicFraudsave(Fraudfraud){Consistencies.consistNotNull(fraud,"Fraud is required for save");PersistenceTypetype;if(fraud.getIdentity()==null){type=PersistenceType.INCLUDE;}else{type=PersistenceType.UPDATE;}returnthis.executeCommand(fraud,type);}@OverridepublicCollection<Fraud>save(Collection<Fraud>fraud){for(Fraudf:fraud){f=this.save(f);}returnfraud;}@OverridepublicQuery<Fraud>findByIdentity(Longidentity){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.eq("identity",identity)));}@Overridepublicbooleancontains(Fraudfraud){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.eq("logCase",fraud.getLogCase()))).count()>=1;}@Overridepublicvoiddelete(Fraudfraud){this.executeCommand(fraud,PersistenceType.DELETE);}@Overridepublicvoiddelete(Collection<Fraud>fraud){for(Fraudf:fraud){this.delete(f);}}@OverridepublicQuery<Fraud>findAll(){returnnewQueryList<Fraud>(this.getSession().createQuery("from Fraud"));}@OverridepublicQuery<Fraud>findDuplicates(FraudFraud){thrownewNotImplementedException();}@OverridepublicQuery<Fraud>findEquals(Fraudinstance){thrownewNotImplementedException();}publicQuery<Integer>count(){returnnewListCriteria<Integer>(this.getSession().createCriteria(Fraud.class).setProjection(Projections.countDistinct("identity")));}publicQuery<Fraud>findAllNewCases(){Criteriacriteria=this.getSession().createCriteria(Fraud.class);criteria.add(Restrictions.or(Restrictions.eq("typeFraud",Fraud.VENDCONT),Restrictions.eq("typeFraud",Fraud.COMPCONT)));criteria.add(Restrictions.eq("statusFraud",Fraud.NEW));returnnewListCriteria<Fraud>(criteria);}publicQuery<Fraud>findInProcessByResponsible(Responsibleresponsible){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.and(Restrictions.eq("responsible",responsible),Restrictions.eq("statusFraud",Fraud.PROCESS))));}publicQuery<Fraud>findAllUnknowmCases(){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.and(Restrictions.eq("typeFraud",Fraud.UNKNOWN),Restrictions.eq("statusFraud",Fraud.NEW))).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY));}publicQuery<Fraud>findAllCompleteds(){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.or(Restrictions.eq("statusFraud",Fraud.RESPONSE_CS),Restrictions.eq("statusFraud",Fraud.COMPLETED))).add(Restrictions.not(Restrictions.eq("typeFraud",Fraud.UNKNOWN))).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY));}//publicQuery<Fraud>findByLogCase(IntegerlogCase){returnnewListCriteria<Fraud>(this.getSession().createCriteria(Fraud.class).add(Restrictions.eq("logCase",logCase)));}publicBooleanfindDuplicatesBySellerAndBuyer(Fraudfraud){Stringsql=Messages.getMessage("sqlQuery.findDuplicateFraudBySellerAndBuyer");sql=sql.replace("SELLER",fraud.getUsersFraudster().getNickName()).replace("BUYER",fraud.getUsersRigged().getNickName());Stringcount=newQueryList<BigInteger>(this.getSession().createSQLQuery(sql)).find().toString();returnInteger.parseInt(count)>0;}publicQueryList<Fraud>findFraudToIncludeKeyword(SearchFraudsearch){StringBuildersql=newStringBuilder().append(Messages.getMessage("sqlQuery.findFraudToIncludeKeyword")).append(" ( ").append("userFraud.nickName LIKE '%").append(search.getNickName()).append("%' OR ").append("userRigged.nickName LIKE '%").append(search.getNickName()).append("%' ) AND ").append("bankInformation.accountHolderDeposit LIKE '%").append(search.getAccountHolder()).append("%' AND ").append("bankInformation.accountNumber LIKE '%").append(search.getAccount()).append("%' AND ").append("bank.bankName LIKE '%").append(search.getBankName()).append("%'");if(search.getAgency()!=null){sql.append(" AND bankInformation.agency = ").append(search.getAgency());}returnnewQueryList<Fraud>(this.getSession().createSQLQuery(sql.toString());}}
Eu mudei essa ultima linha e no sql eu coloquei Select Form {fraud.*}