The linked answer on StackOverflow seems to indicate that statically held MethodHandle instances are more than twice as fast as a reflective getting and setting of fields. We should investigate whether we could provide an alternative to the BeanWrapper implementation that uses ASM to generate a PropertyAccessor implementation for a type with the method handles for properties held in static final fields and an if-then-else cascade to select invoke the right one for a given PersistentProperty.
Using method handles here seems suboptimal as the gain is minimal. There's however another possibility of directly calling methods. As we have details about the getter/setter methods, also regarding visibility, it's more efficient generating method calls instead of using method handles, where applicable. A benchmark shows a higher performance gain: