java - Not getting specific data from detail table -


here named query fetch specific track specific user metadata.

"select t track t left join fetch t.metadata tm t.id= :id , tm.userid = :userid" 

in track entity having metadata list @onetomany relationship join table inbetween name = tracks_metadata_join.

//trackmetadata    @onetomany(cascade = cascadetype.all, fetch = fetchtype.lazy, targetentity=trackmetadata.class, orphanremoval = true)    @jointable(name = "tracks_metadata_join", joincolumns = { @joincolumn(name = "track_id",    referencedcolumnname = "id", table = "tracks") }, inversejoincolumns = @joincolumn(    name = "track_metadata_id", referencedcolumnname = "id", table = "tracks_metadata"))    @jsonproperty    private list<trackmetadata> metadata = new arraylist<>(); 

the result of above query track it's metadata, want track particular metadata. user specific. thanks!

when read track , initialize metadata collection, hibernate populate entire collection. that's how hibernate works.

if want specific metadata elements loaded, make association bidirectional , load desired metadata only:

select tm trackmetadata tm tm.track.id = :id , tm.userid = :userid 

Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -