I don't write much in the way of business application code any more, but if I did, I would generate Java code like crazy.
Think about it, whenever you write database-driven applications, one common denominator is that every database driven project has the database design completed before you start coding. And then, once you start coding, I'll bet 80% of the code is related to what I call CRUD ("create, read, update, delete") functionality.
And you know what -- you can generate this Java database code, either statically, or more powerfully, dynamically.