Search code examples
javapostgresqlhibernatejpql

Query not giving solution in DAO class


when i run my query in database visualizer its working perfectly, but i think there are some issues in syntax when i convert it in my DAO class method.

I want to get whole data against the name provided

In Visualizer:

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

Now in 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;

}

Instead of showing single row, it displays whole data Table Thank you


Solution

  • Your current query is not valid JPQL. It appears that you intended to insert the raw name string into your query, which could be done via a native query, but certainly is not desirable. Instead, use a named parameter in your JPQL query and then bind name to it.

    String name = "Irum";
    Query query = em.createQuery("SELECT x FROM XHrUser WHERE x.firstName = :name")
        .setParameter("name", name);
    
    List<XhrUser> list = query.getResultList();