I've been going back and forth on the following issue for sometime now but I'd like to get some different opinions. For all of the applications I deal with my java objects do not match up with my database tables nor should they and alot of the differences revolve around Internationalization. Because of this I have two real options, I can create objects that meet both the hibernate and application concerns there by coupling them together. Or I can do what I believe is the appropriate thing and use the hibernate objects simply as data transfer objects and use business layer classes to transfer the data thereby creating a true seperation between my model and the rest of my app.
Does anyone out there have any suggestions or comments on the class organization of these types of apps (usually struts and hibernate) and the difficulties inherent in ensuring that they remain decoupled?