How does a framework such as Hibernate work with POJO objects? I have always assumed it is reflection, but often have doubt about my assumption because of the performance implications. Recently I came across a blog saying NHibernate require it's POCO's properties be all virtual. It seems like some overriding are being done. This got me very curious.
I searched online but couldn't find what I am looking for. I can only find articles telling me how to use dependency injection on POJOs and how it makes life wonderful. I already know that.
Can someone suggest some reading materials where I can find my answers? How do they really manipulate/interact with objects without common interfaces?