Você declarou o método para retornar um objeto do tipo Conta, entretanto esta fazendo o return de um objeto do tipo List.
M
Mrzappabr
Staroski, provavelmente é este mesmo o problema que esta ocorrendo. Você saberia como resolver esta questão ?
Incrível que 4 linhas que estavam funcionando perfeitamente, na mudança de versão do Hibernate, se transformaram em 8…
Estou apenas em aprendizado e o sistema em si, é apenas um treinamento, nada real.
M
Mrzappabr
PicklesDog70, Continua com o mesmo problema, pois o returno no método não esta coerente com o tipo declarado no método.
Mas valeu pelo código, pois aprendi mais uma com este “builder.and”
Abs
S
staroski1 like
O que você quer que o método retorne?
Se for uma lista, ajuste a assinatura pra retornar uma lista.
Se for um único objeto, ajuste o código para retornar só um e não a lista.
M
Solucao aceita
Mrzappabr
Grande e paciente Staroski !
Com suas dicas, peguei o código do amigo PiklesDog70 e fiz uma pequena alteração, e para minha surpresa deu certo e nem precisei fazer um cast como no método(deprecated) que existia e funcionava. Envio abaixo para sua análise, se for possível. abs
public Conta buscarFavoritaTeste(Usuario usuario) {
CriteriaBuilderbuilder=session.getCriteriaBuilder();CriteriaQuery<Conta>criteria=builder.createQuery(Conta.class);Root<Conta>contaRoot=criteria.from(Conta.class);TypedQuery<Conta>typedQuery=session.createQuery(criteria.select(contaRoot).where(builder.and(builder.equal(contaRoot.get("usuario"),usuario),builder.equal(contaRoot.get("favorita"),true))));ContacontaList=typedQuery.getSingleResult();// alterei de List para um tipo Conta e voilá .returncontaList;}
O único problema que vejo, é que transformei 4 linhas de código para 8 ou 9… não me conformo com isto…
P
picklesdog701 like
Com JPA sim…aumenta… com Hibernate puro nem tanto…e com JPQL tbm não…mas perde a tipagem (q mesmo nesse caso ainda esta debilitada… )…
Mas se vc abstrair bem esse teu método e usar o generics… vc coloca grande parte do codigo em um lugar só…
M
Mrzappabr1 like
De qualquer forma, vou dar o problema como resolvido. Ainda não tenho conhecimento para extrapolar este método.