Can you please advice me, how can I nicely enable Spring autowiring for Hibernate entities?
Let\'s say I have an entity and would like to have mail-sender there:
It is possible! (And it is the default style in Spring Roo!)
All what you need is to add the @Configurable annotation to your Entity. Activate the annotation in the configuration <context:spring-configured/>
and using AspectJ weaving.
There is a Chapter in the Spring Reference: 7.8.1 Using AspectJ to dependency inject domain objects with Spring
See also:
BTW I strongly recommend to use AspectJ compile time weaving, when possible.
There seems to be a better way than using aspectj-weaving, namely using a hibernate LoadEventListener
, explained in this post.
The way I do it is to use AutowiredAnnotationBeanPostProcessor.
In your entity's constructor you ask the AutowiredAnnotationBeanPostProcessor to inject "this".
My comments at the end of this article details the technique. The article talks about a similar method of autowiring Hibernate entities.