Normally, I would say that if something hurts - you should stop doing it.
But, I didn't know how badly I was hurting myself when I created multiple versions of all of my JPA entities depending on the depth of data that I wanted to have fetched.
So, fixing my app to use FetchGroups (an OpenJPA feature) to do what I had hacked together has been (and still) is a fairly painful process.
I first have to find each place that needs to have a custom fetch group defined and then add to the fetch group until it contains everything that I need.
Once I have it set up correctly though...It is a beautiful thing.
Fast, clean, and obvious what is going on.