JPA, избегая загрузки сущностей каждый раз, когда проходит связь - PullRequest
0 голосов
/ 25 марта 2012

У меня есть класс Customer, определенный следующим образом:

@Entity
public class Customer {
    //...
    @OneToMany(mappedBy = "customer", orphanRemoval = true, FetchType.EAGER)
    @MapKey(name = "name")
    private Map<String, Operation> operationMap = new HashMap<String, Operation>();

Мое приложение с графическим интерфейсом получает этого клиента через EJB, а затем обновляет клиента и / или его операции.Проблема заключается в том, что всякий раз, когда проходит обход коллекции operationMap, создаются новые прокси-объекты сущностей Operation, и это создает проблему для компонентов графического интерфейса.Некоторые все еще связаны со старыми прокси, а некоторые связаны с новыми прокси.

Как вы предлагаете решить эту проблему?Попробуйте пройти operationMap только один раз?Есть ли способ как-то ограничить создание новых прокси?

Я использую EclipseLink JPA (Glassfish AS).

1 Ответ

0 голосов
/ 25 марта 2012

На самом деле это была ошибка в моем управляемом бине.Случайно был вызван метод, который извлекал сущность Customer даже после начальной загрузки страницы, таким образом каждый раз создавая новые отдельные Customer сущности.

...