Здесь я вижу две проблемы:
а). Учитывая некоторый dbClassA, который ссылается на dbClassB и коллекции dbClassC, с dbClassB и dbClassC, каждый из которых является произвольно сложным: какой дизайн прокси подходит? Если dbClassA имеет методы
dbClassB getB() { ... }
мы можем довольно легко увидеть отображение на
myClassB getB() { return new myClassB( theDbClassB.getB() ); }
или что-то подобное. Но что именно мы делаем с коллекциями?
List<dbClassC> getAllCs() { }
что это становится?
Я полагаю, что это решаемая проблема, просто вопрос выбора некоторых правил.
Я подозреваю, что вас больше беспокоит:
б). Создание всех этих прокси-классов. Примените выбранное правило ко многим, многим классам. Одним из возможных подходов является использование возможностей генератора кода, например JET в Eclipse . Я видел очень хорошее использование этой возможности для подобных проблем.