查询未在 DAO 中给出解决方案 class

Query not giving solution in DAO class

当我 运行 我在数据库可视化工具中的查询工作完美时,但我认为在我的 DAO class 方法中转换它时语法存在一些问题。

我想根据提供的名称获取完整数据

在可视化工具中:

SELECT first_name,last_name,nic,phone,email FROM x_hr_user where (first_name = 'Irum');

现在在 Dao 中

public List<XHrUser> findXHrUserByNameInTable() 
{
String name ="Irum"; 
Query query = em.createQuery("SELECT xHrNewUserObj.firstName,xHrNewUserObj.lastName, xHrNewUserObj.nic, xHrNewUserObj.phone, xHrNewUserObj.emil FROM XHrUser xHrNewUserObj where (xHrNewUserObj.firstName) = (name)");

List<XHrUser> list = query.getResultList();
return list;

}

它不显示单行,而是显示整个数据Table 谢谢

您必须按如下方式编写查询。其中 : 用于变量

Query query = em.createQuery("SELECT xHrNewUserObj.firstName,xHrNewUserObj.lastName, xHrNewUserObj.nic, xHrNewUserObj.phone, xHrNewUserObj.emil FROM XHrUser xHrNewUserObj where (xHrNewUserObj.firstName) = :name");

您当前的查询是无效的 JPQL。您似乎打算将原始 name 字符串插入到您的查询中,这可以通过本机查询来完成,但肯定是不可取的。相反,在您的 JPQL 查询中使用命名参数,然后将 name 绑定到它。

String name = "Irum";
Query query = em.createQuery("SELECT x FROM XHrUser WHERE x.firstName = :name")
    .setParameter("name", name);

List<XhrUser> list = query.getResultList();