Weaving

A responsibility of all ORMs is lazy loading of related objects (so as not to load all the data in one go), and tracking of objects as they are modified (to flush back to the database).

With JPA, this is typically done dynamically at runtime, using a Java agent. The SimpleApp and HelloWorld starter apps demonstrate this, bundling the spring-instrument-5.3.5.jar file. To run, use:

-javaagent:lib/spring-instrument-5.3.5.jar

as a JVM argument (where the system properties also are located.)