If you fill out the associations with lazy loaded objects, you should (hopefully) end up with nearly the same performance.
<myOpinionOnly>
I've been wondering if you have an application that has a very rich and complex object model. It sounds like you do. As you're finding, MyBatis is often not the best fit for persisting a complex object model directly. As sad as it may sound to say this, MyBatis is much better at working with the so-called "anemic domain model". But in my experience, anemic domain model is a far better fit for web applications anyway.
Most of the time in web applications you do not need the entire domain to be loaded up for a simple transaction - and loading the whole domain is costly and wasteful. What if you have a page that is modifying some deeply nested object? Even with lazy loading, you will have to load all the parent objects just to get to the nested object - and those parent objects may never be used in your transaction.
The rich domain model works incredibly well in situations where the model can be loaded and retained across transactions. That's not the case in web applications.
If this is the situation you are in, I would urge you to consider adapting your object model to more closely match the architecture of the tools you use. I believe you'll be much happier in the end if you will do this.
</myOpinionOnly>
Jeff Butler