Я заимствую значение "ломтик" из C ++.
Допустим, у меня есть простой POJO, который сохраняется через Hibernate:
class Person {
private long id;
private String name;
...
// getters and setters here
...
}
Теперь, когда я извлекаю объект из базы данных, я знаю, что он "инструментирован" Hibernate (его реальный класс - это объект, сгенерированный автоматически). Я хочу преобразовать его обратно в «простой» объект человека. Tnat будет использоваться, например, для отправки объекта в XStream и получения результата, содержащего только то, что содержит Person.
Я мог бы сделать это, определив конструктор копирования, но я не хочу иметь проблемы с записью конструкторов копирования для каждого класса ORM (не говоря уже о нарушении принципа DRY).
Так что мне было интересно, если
а) уже есть Java-библиотека, которая это делает?
б) Если нет, то было бы целесообразно написать один, используя отражение?
В случае (b) любые рекомендации / рекомендации / скелеты кода будут приветствоваться.