
Митко Соловец?
21.02.2017
18:49:40

Wystan
21.02.2017
18:49:52

Митко Соловец?
21.02.2017
18:50:34
намного же проще, поднять объект из бд, который привязан к контексту, сеттером поменять филд и при выходе из метода транзакция закоммитит изменения

Alexander
21.02.2017
18:50:34

Google

Митко Соловец?
21.02.2017
18:50:39
нахера тут иммутабельность?

Nikolay
21.02.2017
18:51:36
но это не единственный подход

Митко Соловец?
21.02.2017
18:52:05

Nikolay
21.02.2017
18:52:10
да

Митко Соловец?
21.02.2017
18:52:33
и вообще любая ORM

Nikolay
21.02.2017
18:52:41
но я боюсь что hibernate и JPA попадает в категорию паттернов "не очень"

Ivan
21.02.2017
18:52:48
т.е. делать объекты иммутабельными

Митко Соловец?
21.02.2017
18:53:17

Kirill
21.02.2017
18:53:38

sss3 ?
21.02.2017
18:54:18
Логировать использование

guga
21.02.2017
18:54:30

Google

sss3 ?
21.02.2017
18:54:31
Поставить бряк в дебаге

Митко Соловец?
21.02.2017
18:54:35
видеть интерфейс объекта

Nikolay
21.02.2017
18:54:52

Ivan
21.02.2017
18:54:52

Митко Соловец?
21.02.2017
18:54:58

Nikolay
21.02.2017
18:55:05
без мутабельности

sss3 ?
21.02.2017
18:55:07

Alexander
21.02.2017
18:55:43

guga
21.02.2017
18:55:43

sss3 ?
21.02.2017
18:55:44
Хотя сам не люблю геттеры/сеттеры

Митко Соловец?
21.02.2017
18:55:46
только по скольку это голый ждбц привязку к контексту я не имею

Nikolay
21.02.2017
18:56:01
у тебя уже есть объект)

Митко Соловец?
21.02.2017
18:56:05
просто голый джава объект?

sss3 ?
21.02.2017
18:56:21
Дима

Nikolay
21.02.2017
18:56:30
ну, ты его как получил?

Kirill
21.02.2017
18:56:30

Митко Соловец?
21.02.2017
18:56:39

Nikolay
21.02.2017
18:56:39
запросом из базы достал?

Google

Митко Соловец?
21.02.2017
18:56:44

Nikolay
21.02.2017
18:56:50
ну вот. он у тебя есть

Митко Соловец?
21.02.2017
18:56:56
так

guga
21.02.2017
18:57:07
чего уж греха таить, в джаве народ намного более приземлённый.

sss3 ?
21.02.2017
18:57:08
А зачем тебе связывать его с базой

Ivan
21.02.2017
18:57:17
JPA же
персистентность

Митко Соловец?
21.02.2017
18:57:24

Alexander
21.02.2017
18:57:30

Митко Соловец?
21.02.2017
18:57:34
там все объекты живут в контексте

sss3 ?
21.02.2017
18:57:35
А если не используешь

Митко Соловец?
21.02.2017
18:57:39
тогда не надо

Митко Соловец?
21.02.2017
18:57:48
и Николай мне сейчас рассказывает как будет в скале

Ivan
21.02.2017
18:57:49

Kirill
21.02.2017
18:57:56

Alexander
21.02.2017
18:58:20

Митко Соловец?
21.02.2017
18:58:33
например если вы свертку сделали внутри геттера
ок

Google

sss3 ?
21.02.2017
18:58:45
Зло наверно в сеттерах логику имееть

Митко Соловец?
21.02.2017
18:58:52
но если вы начинает хуйню творить

Nikolay
21.02.2017
18:58:54
значит ты стопудово сможешь сделать копию объекта с измененным полем, и потом записать это дело в базу. копия у тебя уже есть

sss3 ?
21.02.2017
18:59:09
Когда добавил одно, а в стейт попало другое

Митко Соловец?
21.02.2017
18:59:12

Kirill
21.02.2017
18:59:20
тогда зачем ты у меня что-то спрашиваешь, если ты пишешь как ты хочешь, тебе норм?)) по такому подходу можно сказать, что любой самый уродливый паттерн ОК, раз я на нем пишу и мне норм)

Митко Соловец?
21.02.2017
18:59:44

Ivan
21.02.2017
18:59:57
даже копию объекта там сделать проблематично

Митко Соловец?
21.02.2017
19:00:15

Admin
ERROR: S client not available

Kirill
21.02.2017
19:00:19

Alexander
21.02.2017
19:00:29

Митко Соловец?
21.02.2017
19:00:39

Alexander
21.02.2017
19:00:43
когда тебе делать надо, а не мешки ворочить

Nikolay
21.02.2017
19:01:06
объект обычный, джавовый? речь про ждбц?
у тебя есть маппинг объект <-> база. описанный в каком-то виде. объект тут может быть кейс классом, просто классом, даже мапой думаю тоже может быть. не чистый jdbc, обертки над ним, и либы типа slick

Kirill
21.02.2017
19:01:36
Ну, тогда ладно, с таким подходом спорить нет смысла, норм так норм)

Митко Соловец?
21.02.2017
19:02:30
просто мы тогда не получаем накладных расходов
и твой подход можно использовать

Google

Nikolay
21.02.2017
19:02:51

Митко Соловец?
21.02.2017
19:02:56
я тебя понял

Nikolay
21.02.2017
19:04:52
чаще всего используют кейс классы скаловские, потому что по ним можно автоматически сгенерировать маппинги туда-обратно с помощью макросов/shapeless

Митко Соловец?
21.02.2017
19:05:50
а вот еще такой, я когда поменял объект, скаловский маппер автоматом мне апдейт запрос сконструирует?
как под капотом это все работает?

Nikolay
21.02.2017
19:06:59
ты имеешь в виду - diff полей построить и по нему апдейт сформировать?

Митко Соловец?
21.02.2017
19:07:08
ага
эта прям сама либа умеет такое анализировать? или самому мапперы писать?
вот есть у нас spring jdbc template, там мапперы сами пишем

Alexander
21.02.2017
19:09:08
там, вроде, был хитрый маппер, который по рефлексии маппит бин на поля запроса

Митко Соловец?
21.02.2017
19:09:16
ни шутя

Alexander
21.02.2017
19:09:43
но он не такой быстрый, как хотелось бы
http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/BeanPropertyRowMapper.html

Nikolay
21.02.2017
19:10:58
такого в готовом виде чтобы предоставляла какая-то из либ - не видел. может быть кто-то другой встречал. тут скорее всего будет сводится к тому что ты 1) перезапишешь весь объект если не хочешь заморачиваться 2) напишешь запрос на апдейт определенных полей сам 3) заморочишься с диффом и сделаешь что-то свое. весьма возможно что 3 уже кто-то сделал
надо бы поискать

Иван
21.02.2017
19:25:30
Так я не понял, что в итоге с getter/setter?

Adam
21.02.2017
19:26:15
генерируй идеей и не трогай больше)

Митко Соловец?
21.02.2017
19:27:03
*ломбок

Adam
21.02.2017
19:28:55

Митко Соловец?
21.02.2017
19:29:05
да
уже полгода наверно
только 1 косяк обнаружил для себя, а так годная либа