Many times I get stacktraces like this one (please see the arrow for the confusing line):
org.springframework.dao.DataIntegrityViolationException: could not exec
$ is an allowed character in class names.
The name SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639 hints that it is a class which was dynamically generated at runtime by Spring framework using CGLIB.
They use $$ and a numeric offset to make this class name unique to avoid conflicts with existing classes.
The string (<generated>) in the stracktrace too was generated by CGLIB:
When CGLIB creates a class at runtime it uses <generated> as placeholder for the name of the source file. The stacktrace then simply prints this string instead of the real source file and line number.