1
resposta

esta dando erro no meu codigo "Cannot resolve symbol 'id'"

    open fun recuperarPeloId(id: Int): TModel {
        val query = manager.createQuery("from ${entityType.simpleName} where ***id***=:id", entityType)
        query.setParameter("id", id)
        val entity = query.singleResult
        return toModel(entity)
    }

estou recebendo esse erro depois de tentar passar o "where" print do erro que estou recebendo

1 resposta

Tirando a parte do ***id***, que acredito que está assim porque era para deixar em negrito, o seu método está correto. Eu acredito que o problema está em passos anteriores. Verifica se o id na classe de entidade ou até mesmo na tabela do banco de dados está como Int. Porque se o dado estiver diferente, ele pode dar este erro que você mencionou; Outra coisa é, verificar se no banco de dados, "id" não seja uma palavra reservada. Mas acredito que você esteja usando o MySql, então dá para remover esta possibilidade; Uma outra coisa que me veio a mente, é a possibilidade do id estar vindo null. Então você pode fazer um debug ou um print do valor quando chega no método recuperarPeloId para dar uma verificada; Ah! E tem mais uma possibilidade: o id do TModel pode estar diferente do entityType. Eu aconselho você a colocar um id que exista no banco direto no código só pra testar mesmo e poder excluir as possibilidades. Se der certo, então a query está corretíssima e você já pode partir para as outras possíveis causas.