Closed fernandocangussu closed 6 years ago
Olá @fernandocangussu,
Obrigado pela colaboração.
Publique a versão 3.0.4 com a sugestão sugerida (https://github.com/demoiselle/framework/commit/574be213a487375fedeb33ef5ff62327eaec14a9#diff-e5b5b4ef0b48a383669829809d038264R69)
public class ClassePai { String atributoPai }
public class ClasseFilha extends ClassePai { String atributoFilho }
public class ClasseFilhaREST extends AbstractREST<ClasseFilha, Long> { @GET @Search(fields = { "atributoPai", "atributoFilho"}) public Result find() {} } No exemplo acima quando um dos atributos é oriundo de uma superclasse a anotação não encontra o mesmo, retornando a seguinte erro: 14:23:28,801 SEVERE [org.demoiselle.jee.rest.exception.mapper.AnyOtherExceptionMapper] (default task-10) Using AnyOtherExceptionMapper: javax.ws.rs.BadRequestException: O campo 'atributo1' solicitado na requsição não existe na classe 'ClasseFilha'.
Verifiquei que no método checkIfExistField() da classe CrudUtilHelper ele pega os atributos da classe através targetClass.getDeclaredFields(), mas esse método não retorna atributos de superclasse. Achei um exemplo de como poderia ser implementada essa solução no link abaixo: (https://stackoverflow.com/questions/1042798/retrieving-the-inherited-attribute-names-values-using-java-reflection)