
Andrey
15.09.2018
21:16:59
сейчас... подожди 5 мин, напишу.
удали package com.pavel; в исходном файле, потом выполни:
javac HelloWorld.java
java HelloWorld
все работает
-classpath не нужен в этом случае

Google

Andrey
15.09.2018
21:22:16
файл при этом должен лежать в текущей директории

Павел
15.09.2018
21:25:55
Я в идеи создал проект. Потом тупо скопировал в папку идя по примеру с хабра. А пакет остался

Andrey
15.09.2018
21:31:39

Dmitry
15.09.2018
21:39:15
а подскажите плз по логике работы с хибернейтом
вот я вытащил из хибернейта модель доменного объекта, смаппил её на доменный объект.
положил этот доменный объект в список
по прошествии времени я хочу обновить этот объект (поменять какое-то поле)
как это правильно сделать? поменять поле и скормить хибернейту?
а вдруг из-за какой-то ошибки в этом объекте поменялось что-то ещё и это сохранение затрёт что-то в базе

Andrey
15.09.2018
21:45:18

Alexey
15.09.2018
21:45:23

Nikolay
15.09.2018
21:46:13
там версионность и всё хорошо (кроме того, что хибер это адский пиздец)

Dmitry
15.09.2018
21:46:29
э… какие «все доступы»?

Nikolay
15.09.2018
21:47:05
однако, если базу кто-то извне трогает, не через твой же хибер (пусть это будет твоя вторая нода), то твой хибер упадёт с криком "я не шмагла, хозяин!"

Google

Alexey
15.09.2018
21:47:05

Nikolay
15.09.2018
21:47:17
кажется, StaleStateException это называется.

Dmitry
15.09.2018
21:47:54
вы слишком глубоко в хибер влезли. вопрос над ним.
он-то сохранит то, что я ему скормлю, это не в этом вопрос

Nikolay
15.09.2018
21:47:55
там есть хибер-шаманство в стиле merge и refresh, но я без доки не помню деталей.
"а вдруг из-за какой-то ошибки в этом объекте поменялось что-то ещё и это сохранение затрёт что-то в базе"
нет, не затрёт. упадёт нахуй, но не затрёт.

Евгений
15.09.2018
21:48:29

Dmitry
15.09.2018
21:48:34
нене, из-за ошибки в базе оно по транзакции откатит

Nikolay
15.09.2018
21:48:39
или ты про изменение в объекте в твоем же коде?

Dmitry
15.09.2018
21:48:48

Nikolay
15.09.2018
21:49:03
если ты изменил объект и пытаешься его сохранить - сохранятся все изменения (опустим нюансы)

Dmitry
15.09.2018
21:49:48
объект A в котором есть поля foo и bar
объект живёт долго. я хочу изменить в нём foo и сохранить.
но вдруг где-то случайно ссзб и изменил bar,
при сохранении bar тоже сохранится
а как бороть? перед сохранением вытаскивать объект из ОРМ, сохранять и обновлять текущий инстанс объекта?

Nikolay
15.09.2018
21:50:58
ну
только пластическая хирургия

Dmitry
15.09.2018
21:51:49
ну почему, просто лишняя перестраховка.
менять не всё, а только то, что нужно

Митко Соловец?
15.09.2018
21:52:14

Google

Nikolay
15.09.2018
21:52:14
тогда у тебя это уже не объект, эквивалентный тому, что у тебя в базе, а просто value object

Dmitry
15.09.2018
21:52:17
это же потенциальное место, где можно в ногу выстрелить

Митко Соловец?
15.09.2018
21:52:39
Плюс, можно принудительно запретить обновлять вложенные сущности

Dmitry
15.09.2018
21:52:42

Nikolay
15.09.2018
21:52:42
а изменения ты отдельно применяешь "на базу" через "вытащил, проапдейтил только в нужных местах, залил обратно"

Митко Соловец?
15.09.2018
21:52:53
updatable=false

Nikolay
15.09.2018
21:53:02
м.
сорян, мне дальше скучно

Dmitry
15.09.2018
21:53:20

Nikolay
15.09.2018
21:53:43

Митко Соловец?
15.09.2018
21:54:01

Dmitry
15.09.2018
21:54:12

Nikolay
15.09.2018
21:54:25
как бороть - послать хибер в жопу
потому что ты не используешь его плюсы с таким подходом

Dmitry
15.09.2018
21:55:07
почему? туда-сюда мапится же

Митко Соловец?
15.09.2018
21:55:11
Да у меня вообще чувство, что чувак уже не может много недель сесть и прочитать доку
А бомбит чат вопросами начального уровня

Nikolay
15.09.2018
21:55:37
запилить всё на jooq или ibatis и не трахать себе мозг
предлагаю профилактически банить на недельку со ссылкой на джавастарт :)

Google

Dmitry
15.09.2018
21:56:12
а… перепутал чатик
у меня этих док скопилось на несколько месяцев вдумчивого чтения

Митко Соловец?
15.09.2018
21:56:43

elefus
15.09.2018
21:57:57

Nikolay
15.09.2018
21:58:51
On May 21, 2010 the development team forked the code creating a new project called MyBatis and making new releases there. As a consequence the Apache iBATIS project became inactive and was moved to the Apache Attic in June 2010.

Митко Соловец?
15.09.2018
21:58:52
Если бы квэри дсл починили для 5 хибера, я бы и жука не рекомендовал

Nikolay
15.09.2018
21:58:58
сорян, я слишком старый

Admin
ERROR: S client not available

elefus
15.09.2018
21:59:06
ты типа старовер?)

Nikolay
15.09.2018
21:59:15
нет, я малолюб
и вообще, майбатис звучит слишком похоже на майэскуэл, а это пиздец, товарищи.

Alexey
15.09.2018
22:09:18


Dmitry
15.09.2018
22:15:08
никаких "если", никаких "вдруг", никаких "внезапно". а то выглядит - как будто код пишет ИИ, а не homo-sapiens. либо работает, либо нет. всё остальное, что не по тз либо баг, либо фича. цена ошибки либо чья-то жизнь, либо чьи-то деньги/ценности. тчк
да, это может быть баг, а может быть уязвимость, а может быть и лишняя работа
вот тут https://stackoverflow.com/a/34451715 три вариант описывают
а я пока думаю мапить только нужную часть DO на модель и её уже скармливать ORM

Евгений
15.09.2018
22:15:31

Nikolay
15.09.2018
22:22:11
защищаться от собственного же кода - редкостная паранойя.

Alexey
15.09.2018
22:24:00

Митко Соловец?
15.09.2018
22:28:15

Dmitry
15.09.2018
22:28:24
вполне возможно

Митко Соловец?
15.09.2018
22:29:15
Ну а вообще выше правильно сказали, лучше не параноить, а тесты писать

Alexey
15.09.2018
22:29:18

Google

Митко Соловец?
15.09.2018
22:29:19
Пользы больше

Alexey
15.09.2018
22:30:46
согласен - тесты, чтобы не было страшно.

Dmitry
15.09.2018
22:34:39
а тесты-то тут причем?
вот я вызываю метод по сохранению части объекта, которая готова к этому.
а в эту транзакцию попадают совершенно левые данные (для данной логической операции), которые сейчас изменяются в другом потоке и пока не готовы к сохранению
поэтому я и хочу сохранять только то, что нужно, а не тупо весь объект

Митко Соловец?
15.09.2018
22:35:42

Dmitry
15.09.2018
22:36:27

Митко Соловец?
15.09.2018
22:36:52
Если начать разбирать все неправильные суждения в твоём сообщении - это лекция выйдет
А ещё я не пойму, тебе религия запрещает отдельно нужную сущность загрузить и обновить
Или ты просто не додумался до такого?

Nikolay
15.09.2018
22:38:06

Митко Соловец?
15.09.2018
22:38:14

Nikolay
15.09.2018
22:38:49
сорри, был испуган.

Митко Соловец?
15.09.2018
22:39:09
Меня тоже этот поток бреда напугал

Nikolay
15.09.2018
22:39:17
похоже человека надо отправить подумать над терминологией, как минимум.

Dmitry
15.09.2018
22:39:19

Митко Соловец?
15.09.2018
22:39:40
Иди читай доку