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
Post a Comment