Я хотел бы реализовать что-то вроде шаблона PDO в сочетании с Spring. Все доменные объекты реализованы в соответствии с их интерфейсом. Каждая реализация объекта домена также имеет автоматическую реализацию DAO, чтобы иметь возможность напрямую сохранять объект. (например, foo.persist ()). Это работает довольно хорошо, Spring также вставляет правильную реализацию DAO.
Чтобы создать эти bean-компоненты, я реализовал BeanFactory, которая просто создает Bean-компоненты с помощью Spring. Тем не менее, Spring создает Dynamic Proxies, и здесь начинается проблема. Когда у меня есть отношение многие-к-одному, я получаю два разных объекта Dynamic Proxy. При сохранении Hibernate говорит мне:
"не удалось получить значение поля по получателю отражения".
Интерфейс этих двух объектов определяется следующим образом:
public interface Client {
public Long getId();
public void setId(Long id);
}
Интерфейс пользователя определяется следующим образом:
public interface User {
public Long getId();
public Client getClient();
public void setClient(Client client);
public void setId(Long id);
}
Реализация User выполнена в соответствии с JPA, я использовал тег targetEntity для ссылки на правильную реализацию объекта Client. Тем не менее, сохранение не работает при вставке объекта Client, который был создан с помощью Spring. Надеюсь, что кто-то с вашей стороны может помочь в решении этой проблемы.
Привет
Matthias