javax.persistence.EntityNotFoundException'异常。无法评估模型。Anagrafica_$$\u jvst834_0.toString()

javax.persistence.EntityNotFoundException'异常。无法评估模型。Anagrafica_$$\u jvst834_0.toString(),java,hibernate,jpa,ninjaframework,Java,Hibernate,Jpa,Ninjaframework,我使用的是ninja框架,它利用JPA访问数据库 我有一个问题: 我的代码: public class UtenteDao extends AbstractDao { @Inject Provider<EntityManager> entityManagerProvider; @UnitOfWork public boolean utenteValido(String user, String password) { if (user != null &&a

我使用的是ninja框架,它利用JPA访问数据库

我有一个问题:

我的代码:

public class UtenteDao extends AbstractDao {


@Inject
Provider<EntityManager> entityManagerProvider;


@UnitOfWork
public boolean utenteValido(String user, String password) {

    if (user != null && password != null ) {

        EntityManager entityManager = entityManagerProvider.get();

        TypedQuery<Utente> q = entityManager
                .createQuery("SELECT x FROM Utente x WHERE x.user = :user AND x.password = :password AND x.attivo ='true'", Utente.class)
                .setParameter("user",user)
                .setParameter("password",password);



        Utente utente = getSingleResult(q);

        if (utente != null) {

            if (utente.password.equals(password)) {

                return true;
            }
        }
    }
    return false;
  }
}
我不知道如何解决这个问题


我希望您能提前帮助我并感谢您。

getSingleResult会抛出EntityNotFoundException,因为它找不到具有所提供参数的实体

您在调试器中看到的问题是内部类没有toString方法。但这并不重要。问题是它没有找到实体


如果查询结果可以为空,则必须捕获EntityNotFoundException或调用getResultList并检查其是否为空。

我通过执行结果列表public T getSingleResultTypedQuery查询{query.setMaxResults1;list lista=query.getResultList;iLista==null | | lista.isEmpty来完成此操作{return null;}return lista.get0;}事实上,如果您可以通过扩展由Me创建的abstractDao类看到什么是Anagrafica?从stacktrace中,我看到Execution被抛出到这个类的toString方法中