Staying up late is no good!
I did not roll back the Spring Test just now. I summarized the possible reasons:
1. Whether it is <AOP: Advisor or the annotation used or the AOP of pojo, in short, the configuration or use may be incorrect, the most basic reason.
2. You caught the exception and didn't throw it to let spring know.
3. The method you call is not your own, but inherited (the inherited class implements some of your interfaces, and you have not overloaded them ), spring will not wrap the parent class method, nor will it be wrapped (This point of view is not absolutely proven ). That is, spring only shows the methods of the classes you currently call. The solution is to add @ transactional to your daosupport. It is also clear that the transaction Declaration of the subclass is valid. If the subclass is not declared, it will be found in the parent class.