我正在使用hibernate状态向下转换query.uniqueResult()来处理问题。我有2类:-UserBean-UserLogin
在第一个中,我具有所有表字段以及所有处理数据的方法的映射。相反,第二个仅代表将存储在用户会话中的一些用户数据。
在登录方法的特定点,我执行查询并得到1行(我已经检查了查询是否确实返回了一些结果)。关键是我无法从Object类型(即query.uniqueResult()类型)转换为UserLogin类型。
有人知道这可能是问题吗?
非常感谢!
这是登录方法:
public UserLogin login(String email, String password){
Session session = iniHibernate();
UserLogin userLogin = null;
try{
session.beginTransaction();
Query query = session.createQuery("select email, name from "
+ "UserBean u where u.email = :user_email and "
+ "u.password = :user_password");
query.setString("user_email", email);
query.setString("user_password",password);
userLogin = (UserLogin) query.uniqueResult();
session.getTransaction().commit();
}catch (Exception e){
System.out.println(e);
}
return userLogin;
}
根据Query.uniqueResults的文档:
用于返回与查询匹配的单个实例的便捷方法;如果查询没有返回结果,则返回null。
之所以不起作用,是因为您返回的不是UserBean
我假设的String数组映射到UserLogin
。
尝试这样做:
(String[])query.uniqueResult();
或更改查询以获取对象:
Query query = session.createQuery("select u from "
+ "UserBean u where u.email = :user_email and "
+ "u.password = :user_password");
那应该让您开始。
问题内容: 我已经使用Seam 2.2.1和MySQL编写了一个正在运行的应用程序。我现在尝试将应用程序连接到 Informix, 并且当我从 hibernate ()执行查询时,出现以下异常: org.hibernate.exception.genericjdbcexception无法执行查询 当我执行查询时,执行成功。 生成的sql是 选择前2个user0_.USER_ID作为USER1_12
问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎完全没有文档,因此我完全不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此这使我在这里提出了疑问。 问题答
问题内容: 当我尝试从数据库中删除条目时,使用 然后我可以执行以下操作: 1)如果该行存在于数据库中,则将执行两个SQL查询:一个选择,然后一个删除 2)如果数据库中不存在该行,则仅执行选择查询 但是同样,更新不是这种情况。无论是否存在数据库行,都只会执行更新查询。 请让我知道为什么这种行为用于删除操作。这不是性能问题,因为遇到了两个查询而不是一个查询? 编辑: 我正在使用休眠3.2.5 样例代码
问题内容: 我一直在努力寻找可以通过JPA中的方法调用设置的所有提示的权威资源,但我的想法是空的。有人知道很好的参考吗? 问题答案: 请参阅“ 3.4.1.7。查询提示” 。
问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误
问题内容: 我想按数据库中的条件计数记录数。 我尝试使用下一个查询 但是没有方法可以执行此操作并获得结果。 我知道,我可以使用 所以问题是,查询是否具有更高的性能?如果,那么如何执行查询呢? 问题答案: 您可以通过调用来执行第一个查询,例如。 如果要将计数分配给变量,则需要将其转换为适当的类型(它可以取决于DB,但很可能是Long)。第二个查询效率很低,因为Hibernate需要从数据库中检索整个