我正在使用ninja框架,它利用JPA访问数据库。
我有这个问题:enter image description here
我的代码:
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;
}
}
我不知道如何解决这个问题。
我希望你能帮助我,并提前感谢你。
答案 0 :(得分:0)
getSingleResult()抛出EntityNotFoundException,因为它找不到具有提供参数的实体。
您在调试器中看到的问题是内部类没有toString方法。但那没关系。问题是它找不到实体。
如果查询结果为null,则必须捕获EntityNotFoundException或调用getResultList()并检查它是否为空。