hql - Hibernate select elements of collection with a given property -
entity project has collection property contributors mapped @onetomany relationship entity user
@entity @table( name = "projects" ) public class project {     ...      @onetomany     @jointable(name = "project_contributors")     private list<user> contributors = new arraylist<user>();      ... } i need check if contributors has user id contributorid before adding it. trying hql query, quite innept.
what trying:
query query = session.createquery(         "select p.contributors project p p.id = :pid , p.contributors.id = :cid"     );  query.setparameter("pid", projectid); query.setparameter("cid", contributorid);  @suppresswarnings("unchecked") list<user> res = (list<user>) query.list(); but gives error
illegal attempt dereference collection [project0_.id.contributors] element property reference [id] is there samaritan give me little push?
another try made is
"select p.contributors c project p p.id = :pid , c.id = :cid" but nothing.
contributors collection. such, not have attribute named id.
idis attribute of elements of collection.
you can fix issue joining collection instead of dereferencing it:
select p    project pj    join pj.contributors  p   pj.id       = :pid    , p.id     = :cid 
Comments
Post a Comment