Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 88 89 90 91 92 [93] 94 95 96 97 .. 134   вперед  Ctrl
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
mayton
А зачем поклеил обои? Да ещё и такие.. хм вырвиглазные?

исключительно для жены))
11 июл 19, 23:13    [21925336]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Убери этот ужас. Он не нужен ни жене ни ментору. Впечатлить никого не удасться а если в топике
будут дизайнеры - закидают тебя фекалиями. И по своему будут правы.
12 июл 19, 00:27    [21925349]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16783
asv79,
сколько объектов у тебя создано для одного юзера?
12 июл 19, 08:41    [21925408]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
вадя
asv79,
сколько объектов у тебя создано для одного юзера?

что ты подразумеваешь под объектами?сущности?
12 июл 19, 09:25    [21925429]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
Народ может кто то обьяснить по LAZY инициализаиции one2many

я понимаю что это неполная загрузка с базы,а только по обращению
тоесть чтобы все работало с LAZY мне нужна анотация @Transactional

вопрос в том куда ее ставить? во все места,где используется эта сущность?
в дао слой,в сервис ?
12 июл 19, 10:08    [21925482]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16783
asv79
что ты подразумеваешь под объектами?сущности?
и сучности и листы
12 июл 19, 10:33    [21925512]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
вадя
asv79
что ты подразумеваешь под объектами?сущности?
и сучности и листы

листов у меня нет под юзера
12 июл 19, 10:42    [21925520]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
asv79
Народ может кто то обьяснить по LAZY инициализаиции one2many

я понимаю что это неполная загрузка с базы,а только по обращению
тоесть чтобы все работало с LAZY мне нужна анотация @Transactional

вопрос в том куда ее ставить? во все места,где используется эта сущность?
в дао слой,в сервис ?
докажи что это нужно. Да еще в топике курилке?
12 июл 19, 11:02    [21925536]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
ну ты представь что у тебя сотни тысяч юзеров,и при егерь ините ты будешь сразу все это тащить
нужна ленивая инициализация в рамках транзакции

пс.я уже разобраля почему ошибку получал,просто я брал лист в пределах одной транзакции ,в результат хотел брать в другой
12 июл 19, 11:11    [21925542]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
asv79
сотни тысяч юзеров
преждевременная оптимизация - зло (с) аксиома.
Нет у тебя столько.
12 июл 19, 11:34    [21925576]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
PetroNotC Sharp
asv79
сотни тысяч юзеров
преждевременная оптимизация - зло (с) аксиома.
Нет у тебя столько.

а раз нет ,то не нужно и lazy делать)
я просто для себя решил попробвать что это такое


оказалос все просто
все манипуляции с колекцей должны быть в пределах транзакции
метод getUserById
получил юзера и хочу вытащить его заказы
я должен в этом методе указать
getUserById.getOrders.size

иначе получу ошибку
12 июл 19, 11:47    [21925594]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
asv79
PetroNotC Sharp
пропущено...
преждевременная оптимизация - зло (с) аксиома.
Нет у тебя столько.

а раз нет ,то не нужно и lazy делать)
я просто для себя решил попробвать что это такое


оказалос все просто
все манипуляции с колекцей должны быть в пределах транзакции
метод getUserById
получил юзера и хочу вытащить его заказы
я должен в этом методе указать
getUserById.getOrders.size

иначе получу ошибку

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

в идеале у тебя не должно быть надобности ходить по полям вне блока.

игер опасен тем что он невменяемо подъедает ресурсы и может вызвать некоторые другие забавные последствия, например, у тебя в листе игер лежат элементы которые тоже помечены игер и тоже листы. ну ты понял да.

игер можно практиковать, но надо понимать как это работает, зачем тебе нужен в принципе игер, и коллекция что внутри него - она не будет иметь миллионы комплексных объектов.

по дефолту если я не ошибаюсь, там игер на поля из одного элемента и лейзи на поля-списки. и это вполне разумно я считаю.
12 июл 19, 18:10    [21925978]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
не знаю ща побороли или нет но у еня одна из проблем игера была в том что хибер начинал долбить н+1 запросов по коллекции. и ты или делал джойн фетч, что делало запросов конечно же меньше, но один запрос был длиннее, или чесал репу что с твоей моделью не так.
12 июл 19, 18:12    [21925979]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 42879
Я видосы приклеплял. Там есть про это.
12 июл 19, 18:15    [21925981]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
PetroNotC Sharp
вадя,
Учись. Студент за неделю прогу на хибере слелает и без всяких сокетов)

так он в юайные дебри зачем то подался.

во-первых, по моему опыту (приходилось верстать и на на жскл и на симлифе верстать всякое гамно), фронт жрёт (для бэкендера) очень дофига времени, сильно больше чем собссно сам бэк и бизнеслогика.

во-вторых, всё-равно гапно и никто так не делает.

имхо если ты на роль бэкендера претендуешь - ограничивайся джейсонами и рест эндпойнтами. а то что он наворотил - это херня ненужная. Еще там и Вадя-провокатор. ))) ща он принтлнами начнет джаваскрипт код отдавать )))
12 июл 19, 18:33    [21925992]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
забыл ник
Member

Откуда:
Сообщений: 3045
andreykaT
не знаю ща побороли или нет но у еня одна из проблем игера была в том что хибер начинал долбить н+1 запросов по коллекции. и ты или делал джойн фетч, что делало запросов конечно же меньше, но один запрос был длиннее, или чесал репу что с твоей моделью не так.

Ну если тебе все равно итерироваться по этой коллекции затем, то по-любому надо тянуть eagerly. Если паджинация - то можно задать batchSize. Ну это как бы основы вроде как..
12 июл 19, 18:35    [21925993]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
asv79
PetroNotC Sharp
пропущено...
если скрин выше сделан print(
То я в говнокоде пас.
Удачи!

чо вы так сервлетов то боитесь))ты видимо не в курсе ,что jsp преобразуется в сервлет

тоесть либо писать на голой штмле либо не крутить мозг а делать как удобнее тебе

мне вот не хочется заморачиваттся с jstl ,а без него я не смогу реализовать функционал своих страниц

зачем мне это делать если у меня есть уже готовый java класс который все умеет,чем извращаться с jstl

затем что жстл это сделает понятнее лаконичнее лучше,и у тебя в целом, система будет более гранулярной.
ты не сделаешь лучше чем сделали десятки и сотни людей основываясь на своим опыте и делая вполне себе годный продукт по факту (со всех аспектов). только дурак не использует опыт чужих людей а набивает шишки сам.
12 июл 19, 18:35    [21925994]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
забыл ник
andreykaT
не знаю ща побороли или нет но у еня одна из проблем игера была в том что хибер начинал долбить н+1 запросов по коллекции. и ты или делал джойн фетч, что делало запросов конечно же меньше, но один запрос был длиннее, или чесал репу что с твоей моделью не так.

Ну если тебе все равно итерироваться по этой коллекции затем, то по-любому надо тянуть eagerly. Если паджинация - то можно задать batchSize. Ну это как бы основы вроде как..

зачем игерли? делай новый объект внутри транзакции и копируй всё нужное туда. да. я против игеров на коллекциях кроме исключительных случаев.
12 июл 19, 18:38    [21925996]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
andreykaT
лейзи по дефолту ставится на все поля-
кем?
Может наоборот?
По умолчанию загружаются все поля. Это default поведение.
12 июл 19, 18:39    [21925997]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
PetroNotC Sharp
andreykaT
лейзи по дефолту ставится на все поля-
кем?
Может наоборот?
По умолчанию загружаются все поля. Это default поведение.

на коллекции ставится лейзи (если ты сам явно не поставил игер)
на не коллекции - игер. (если ты сам явно не поставил лейзи)
12 июл 19, 18:48    [21926001]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
andreykaT,
Да. Нашел
....
Тип Lazy Fetch по умолчанию выбран Hibernate, если вы явно не отметили Eager Тип Fetch.
12 июл 19, 18:51    [21926003]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2446
andreykaT,
Тогда default отличная стратегия.
Почему он вопрос вообще поднял из за трех полей?
12 июл 19, 18:54    [21926004]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
Потому что в него вне блока транзакции по ходу нули прилетели
12 июл 19, 23:25    [21926068]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2704
andreykaT
Потому что в него вне блока транзакции по ходу нули прилетели

все верно ,у меня нули прилетели,так как брал list.size вне транзакиции

пс.изначально егерь был,потом нам сказли переделать все на lazy
тобишь one2many дефолт и пометиить нужные методы transactioal

собсно я так и сделал но как только я пытался по юзеру дергать лист заказов получал ошибку
так как в методе где я инициализурую юзера нужно прописать orderlist.size()
я так понимаю для того,чтобы в пределах одной транзакции поднятнуть лист с этим размером
14 июл 19, 20:04    [21926442]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2427
Ты я надеюсь уже знаешь как в иерархии вызовов нестед транзакции работают или могут работать?
14 июл 19, 20:48    [21926457]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 88 89 90 91 92 [93] 94 95 96 97 .. 134   вперед  Ctrl
Все форумы / Java Ответить