So as I work through my demo application and documentation I was working on the domain model and thinking of the different ways I can attempt to demonstrate all or at least most of the ORM features in Nvigorate. Why? Because I hate when I'm looking through documentation and the feature I need to use has no examples.
As I was tweaking the domain model, I added three properties to the Person object: HomePhone, MobilePhone and WorkPhone making them all of type Phone when it occurred to me - Nvigorate might not do so well with that...
Thus began a 10 hour session of refactoring "fun" that I am happy to put behind me. On the one hand, I'm pretty happy that I was able to fix the oversight this quickly, but it's always a little disheartening to realize you overlooked something so significant.
Also a significant feature of included in this revision is a new aspect called ForbidLazyLoadingAspect which gets applied to methods where you want to ensure lazy loading isn't going to "help" you and fire during operations like persist. Chances are, you won't have to use it simply because I've already applied it to the sensitive areas where certain scenarios caused an infinite loop thanks to the LazyLoader.
And there you have it! My unit tests tell me I'm in pretty good shape and now I can go back to the demo and guide.
Tags: