java - Hibernate eager loading not fetching all child rows -


hibernate version 4.3.10

i have parent/child relationship described in example. there occasions when expect 1 row returned when querying provider. in case, limit criteria calling setmaxresults method 1.

dump of sql revealed hibernate makes outer join calls ends returning more 1 row, because of limit set on criteria, first child row read database.

    @entity     @table(name = "f_provider")     public class provider {         @onetomany(cascade = cascadetype.all, mappedby = "provider", orphanremoval = true, fetch = fetchtype.eager)         private final set<credentialfielddefinition> credentialfielddefinitionlist; }  @entity @table(name = "f_cred_fields", uniqueconstraints = { @uniqueconstraint(columnnames = { "name", "provider_id" }) }) public class credentialfielddefinition { @manytoone(targetentity = provider.class, optional = false)     @joincolumn(name = "provider_id", nullable = false, unique = false)     private provider provider; } 

how convince return me full child set when reading row?

you can try using subselect fetch mode:

@onetomany(cascade = cascadetype.all, mappedby = "provider", orphanremoval = true, fetch = fetchtype.eager) @fetch(fetchmode.subselect) private final set<credentialfielddefinition> credentialfielddefinitionlist; 

this way credentialfielddefinitionlist initialized in separate query.


Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -