powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Надо ли инициализировать List?
7 сообщений из 7, страница 1 из 1
Надо ли инициализировать List?
    #38125731
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа! Подскажите пожалуйста.

Вот классический мэппинг

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
@Entity
public class BasketItem
{
   @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
    @JoinColumn(name = "BASKET_ID")
    public Basket basket;
}

@Entity
public class Basket
{
    @OneToMany(mappedBy = "basket", cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    private List<BasketItem> basketItemsList;

    public Basket()
    {
        basketItemsList = new ArrayList<BasketItem>();  //чтобы избежать NullPointerException
    }

   public BasketItem addBasketItem(BasketItem basketItem)
    {
        basketItemsList.add(basketItem);
        basketItem.setBasket(this);
        return basketItem;
    }
}



Я всегда инициализирую List в конструкторе, чтобы при методах типа addBasketItem(...)
избежать NullPointerException.
Правильно ли я делаю? Или это List должен становится не null исключительно при считывании данных из БД?
А до того при попытках что-то делать с этим basketItemsList его надо проверять на null?
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38126552
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно почему бы не создать список прям в объявлении поля. Зачем в конструкторе? В целом, я за такой подход, который минимизирует возможность NPE, если он никак не препядствует работе ORM.
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38126801
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я так понимаю, вопрос как в раз в том - мешается инициализация поля работе JPA/Hibernate или нет.
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38126804
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я так понимаю, вопрос как в раз в этом и состоит - мешает инициализация поля работе JPA/Hibernate или нет.
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38126911
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЯ так понимаю, вопрос как в раз в том - мешается инициализация поля работе JPA/Hibernate или нет.
В целом, нет не мешает. Но могут быть какие-то сценарии в которых это может проявится. Например можно где-то заложится на поведение PersistentList, а потом окажется что у нас там простой список. И, например, удаление не отработает.
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38131220
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczLeonidvЯ так понимаю, вопрос как в раз в том - мешается инициализация поля работе JPA/Hibernate или нет.
В целом, нет не мешает. Но могут быть какие-то сценарии в которых это может проявится. Например можно где-то заложится на поведение PersistentList, а потом окажется что у нас там простой список. И, например, удаление не отработает.

Можно пример почему удаление не отработает?
...
Рейтинг: 0 / 0
Надо ли инициализировать List?
    #38131246
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonМожно пример почему удаление не отработает?
Как работает удаление в Persistent Collection. Там внутри лежит snapshot состояния на этапе загрузки. Бизнес-кейс что-то удаляет и сохраняет коллекцию. Хибер сравнивает значение со снэпшотом и производит удаление в базе.
Теперь в какой-то момент там оказалась не Persistent Collection... Если только при создании, то ОК. Но если где-то что-то скопировалось, то уже возможны вариации.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Надо ли инициализировать List?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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