0 Replies Latest reply on Sep 29, 2014 12:51 PM by Kathir J

    Equivalent HQL Query for this SQL Update Query ????

    Kathir J Newbie



      Below SQL is working perfectly....


      String sqlString = "UPDATE employee SET employee_status = EXISTS (SELECT employee_status "

      + "FROM company WHERE employee_id=" + employeeId + " AND employee_status = TRUE) where "

      + "employee_id= " + employeeId;

      Query query = currentSession().createSQLQuery(sqlString);


      When i converted the above SQL query to below HQL query


      Query query = currentSession()


      "UPDATE Employee SET employeeStatus = EXISTS (SELECT employeeStatus "

      + "FROM Company WHERE employeeId =:employeeId AND employeeStatus = :employeeStatus) where "

      + "employeeId = :employeeId");

      query.setParameter("employeeStatus", true);

      query.setParameter("employeeId", employeeId);


      Getting the following exception


      <AST>:1:79: unexpected AST node: EXISTS

      <AST>:1:79: unexpected AST node: EXISTS

      at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.newValue(HqlSqlBaseWalker.java:1227)

      at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.assignment(HqlSqlBaseWalker.java:1033)

      at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.setClause(HqlSqlBaseWalker.java:747)

      at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.updateStatement(HqlSqlBaseWalker.java:367)

      at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:255)

      at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:249)


      could someone help me with the correct HQL query ??? Please let me know my mistakes in the HQL Query.