# Spring Data JPA - EclipseLink

This project contains an example of how to use Spring Data JPA in combination with Eclipselink. EclipseLink requires the domain types to be instrumented to implement lazy-loading. This can be achieved either through static weaving at compile time or dynamically at class loading time (load-time weaving). The build is set up to allow both modes of execution by selecting a certain build profile.

## Static weaving

To run the project with static weaving enable the corresponding build profile on the command line:

[source, bash]
----
$ mvn clean test -Pstatic-weaving
----

Note, that you need to make sure the weaving process is run by your IDE, before executing test cases either by making sure the declared EclipseLink plugin is executed during compile or running `mvn clean test-compile` before running the tests.

## Load-time weaving

By default, the projects builds and runs with load-time weaving enabled. This is achieved by configuring the Spring instrumentation agent for both the Surefire and Spring Boot Maven plugin. The build profile for load-time weaving is enabled by default.

For execution within the IDE, make sure you configure the Spring instrumentation agent to be applied.
