We've run into an unexpected problem upgrading from H2 1.4.199 to version
2.1.214 .
We're using H2 for unit tests in a Spring Boot/JPA application, currently
version 2.5.5 .
The unit tests all ran successfully under 1.4.199, the code seems to
execute correctly against our production Oracle instance, and if I use
Derby for the Unit Tests they also execute successfully.
As far as I can tell the issue might be around our Parent entity, Person,
which has quite a large number of child entities. In general the child
entities are configured for Lazy loading like:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "person", cascade =
{CascadeType.ALL}, orphanRemoval = true)
One of the unit tests that's failing is failing because the child entities
are not returned. What's very perplexing is that if I change the FetchType
to EAGER, _and_ I pre-fetch the child rows with a separate db call the unit
test then passes.
// the call below pre-fetches the child data
Surname sn =
surnameRepoForTest.findSurnameByPerson_Uuid(Integer.valueOf("222222222")).orElse(null);
// the rest of the unit test fails without the pre-fetch AND the EAGER
fetchtype in Person
Person p = personSearch.getMatchingPersonRecordByEmplid("9546", null, "U",
DateGetter.getDate("2012-01-01"), "Emp-last", "Emp-phone", null);
assertEquals("222222222", p.getUuid().toString());
Any suggestions on what to try to get this working in H2 2.1.214 with the
LAZY fetch type and without the pre-fetch of the child data?
Thanks,
Kris
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/h2-database/8bb4f0f1-ffd7-4142-a589-1083daf577c8n%40googlegroups.com.