powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Fetch Lazy не срабатывает
3 сообщений из 3, страница 1 из 1
Fetch Lazy не срабатывает
    #39409602
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть Entity user

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Entity(name = "User")
@Table(name = "USER")
@Access(value = AccessType.PROPERTY)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "ROLE", discriminatorType = DiscriminatorType.STRING, columnDefinition = "VARCHAR2(31) DEFAULT 'user' NOT NULL")
@DiscriminatorValue("user")
public class User extends VersionedEntity {
...
    private List<CardsOrders> cardsOrdersList = new ArrayList<CardsOrders>();{
...
    @OneToMany(mappedBy = "User", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
    public List<CardsOrders> getCardsOrdersList() {
        return cardsOrdersList;
    }
...
}



Начитка
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    @Override
    public List<User> readPageUserByFilter(UserFilter userFilter, Integer first, Integer pageSize, String sortField, SortOrder sortOrder) {
        TimeWork timeWork = new TimeWork();
        CriteriaBuilder qb = em.getCriteriaBuilder();
        CriteriaQuery<User> query = qb.createQuery(User.class);
        Root<User> root = query.from(User.class);
        Predicate[] restrictions = buildPredicates(userFilter, qb, root);
        query.where(restrictions);
        if (sortField != null) {
            if (sortOrder.equals(SortOrder.ASCENDING)) {
                query.orderBy(qb.asc(root.get(sortField)));
            } else if (sortOrder.equals(SortOrder.DESCENDING)) {
                query.orderBy(qb.desc(root.get(sortField)));
            }
        }
        TypedQuery<User> tq = em.createQuery(query.distinct(true));
        tq.setFirstResult(first);
        tq.setMaxResults(pageSize);
        List<User> UserList = tq.setHint(QueryHints.REFRESH, HintValues.TRUE).getResultList();
        return UserList;
    }



Собственно почему при начитке вызывается этот метод - getCardsOrdersList ??? =(
...
Рейтинг: 0 / 0
Fetch Lazy не срабатывает
    #39409611
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает как надо при FALSE
Но я так понимаю cache обновляться не будет?
List<User> UserList = tq.setHint(QueryHints.REFRESH, HintValues.FALSE).getResultList();
...
Рейтинг: 0 / 0
Fetch Lazy не срабатывает
    #39409896
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем отличаются

REFRESH и MAINTAIN_CACHE
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Fetch Lazy не срабатывает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]