Hibernate: результат метода случайного поиска - PullRequest
0 голосов
/ 20 февраля 2019

Когда я создаю новый EntityManager для получения версии базы данных сущностей, метод find () получает случайный результат при каждом вызове, список (элементы) случайным образом пуст, даже если я использую Hibernate.initialize.Служба запускается весенним пакетом с помощью @Transactional (транзакция = Менеджер транзакций, распространение = распространение.REQUIRES_NEW).

Это мой код:

@Entity
@Table(name = "activity")
public class Activity {
 @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "activity_detail", joinColumns = @JoinColumn(name = "activity_detail_id"), inverseJoinColumns = @JoinColumn(name = "item_id"))
    private final List<Item>    items = new ArrayList<>();
}

В моем сервисе:

public boolean needUpdate(Activity  entity) {
        boolean needed;
        EntityManager entityManager = emFactory.createEntityManager();
        @SuppressWarnings("unchecked")
        Activity  dbEntityVersionLazy =  entityManager.find(entity.getClass(), entity.getId());
        Activity  dbEntityVersion = EntityHelper.initializeAndUnproxy(dbEntityVersionLazy);
        needed = !entity.equals(dbEntityVersion);
        entityManager.close();
        return needed;
    }

Может кто-нибудь объяснить, в чем проблема?

...