Good day. Tell me, please, how to make a request if: there is a “project”, it has a flag-field and a manager (one to one connection). Head - Entity-object. It does not work. Thank.

public List<Project> getList(boolean status, User manager){ Query query = null; if(status){ mySql = "SELECT p FROM Project p WHERE p.status is true "; }else{ mySql = "SELECT p FROM Project p WHERE p.status is false "; } mySql += "and join p.manager m WHERE m.username=:username"; query = em.createQuery(mySql,Project.class); query.setParameter("username", manager.getUsername()); return query.getResultList(); } 

so too ...

  public List<Project> getList(boolean status, User manager){ Query query = null; if(status){ mySql = "SELECT p FROM Project p WHERE p.status is true "; }else{ mySql += "SELECT p FROM Project p WHERE p.status is false "; } mySql = "and join p.manager m WHERE m.username=:username"; query = em.createQuery(mySql,Project.class); query.setParameter("username", manager.getUsername()); return query.getResultList(); } 

    1 answer 1

    First, you initialize mySql (which, by the way, is not visible, apparently it is an object field.)

     if(status){ mySql = "SELECT p FROM Project p WHERE p.status is true "; }else{ mySql = "SELECT p FROM Project p WHERE p.status is false "; } 

    Then replace everything in this line:

     mySql = "and join p.manager m WHERE m.username=:username"; 

    Probably you would like to add text like this:

     mySql += "and join p.manager m WHERE m.username=:username"; 

    As for the request itself: add a question with a description of the tables and write what exactly should be as a result of the request. In this form, it will not be executed.