This recipe should show you why it is important to understand the basic concepts of bytecode enhancement and how it is leveraged in the Play framework. The average developer usually does not get in contact with bytecode enhancement. The usual build cycle is compiling the application, and then using the created class files.
Bytecode enhancement is an additional step between the compilation of the class files and the usage by the application. Basically this enhancement step allows you to change the complete behavior of the application by changing what is written in the class files at a very low level. A common use case for this is aspect oriented programming, is where you add certain features to methods after the class has been compiled. A classical use case for this is the measurement of method runtimes.
If you have already explored the source code of the persistence layer you might have noticed the use of bytecode enhancement. This is primarily to overcome...