@springsource_roo - what is the code you're using to fetch? Are you doing Document.findAll() or something else?
You could cheat and create a custom finder, something where you manually create an instance of the document in your query, like this:
Code:
// create a simple finder to get the syntax, then push in and modify this part:
em.createQuery ("select new qualified.with.package.names.Document(d.only,d.fields,d.that,d.you,d.want,d.instantiated) from Document d where...")....
Then, you can build a constructor with just those fields that gets called by this query. Call this finder instead of the normal Document.findAll() and you should be in business. It should work fine when you are building a list for display on your UI as long as you're not planning to treat it as any more than a POJO, with the caveat that these are only rows to be returned to the UI, and they don't take part (if I recall correctly) in the cache of the Hibernate ORM because they are JPAQL queries with custom returned objects, not fetched by Hibernate itself.
That would be a simpler alternative to what they're suggesting on stackoverflow.com - the one to one mapping. The downside is that you'd need to implement variants for what you need to fetch in certain cases. I'm not sure I like it, but it would be an alternative to explore.