
Nick
20.02.2017
16:23:52
Зачем такую херню делать
Транзакция должна быть коротенькой

Pavel
20.02.2017
16:24:26
а как транзакцию можно передавать?

Ivan
20.02.2017
16:24:45

Google

Ivan
20.02.2017
16:24:53
я хочу чтобы она была на виду

Митко Соловец?
20.02.2017
16:24:59

Ivan
20.02.2017
16:25:39

Nick
20.02.2017
16:26:10
Вообще передавать по сути пожешь и конекшин
Просто коммит не делать

Ivan
20.02.2017
16:26:29
это верно, я так и делаю сейчас но в Java это все выглядит стремно
после Scala

Митко Соловец?
20.02.2017
16:26:33

Nick
20.02.2017
16:26:49

Ivan
20.02.2017
16:27:13
и там сохраняем че нить

Митко Соловец?
20.02.2017
16:27:23
понятно, пиздец

Nick
20.02.2017
16:27:30
Наркоман

Google

Ivan
20.02.2017
16:27:38
ясное дело для JPA это пиздец

Nick
20.02.2017
16:27:47

Митко Соловец?
20.02.2017
16:28:07
нафига ты параллельно что-то сохраняешь, дружок?

Nick
20.02.2017
16:28:24

Adam
20.02.2017
16:28:38

Митко Соловец?
20.02.2017
16:28:56
@Transactional(propagation = Propagation.REQUIRED)

Ivan
20.02.2017
16:29:24
мне не хочется чтобы транзакция цеплялась к потоку вот и все

Nick
20.02.2017
16:29:24
Видимо у него бесконечный пул)

Митко Соловец?
20.02.2017
16:29:25
не подойдет?

Ivan
20.02.2017
16:29:42

Nick
20.02.2017
16:29:55
Я про пул конекшинов

Ivan
20.02.2017
16:30:10
транзакция открывается на уровня одного соединения
лол
о чем ты?

Nick
20.02.2017
16:30:16
В общем ты делаешь какую-то дичь
Я про то что ты скорее всего пул конектов выберешь или все потоки в параллельных стримах заблочишь

Митко Соловец?
20.02.2017
16:31:40
бизнес задача какая
мотивация какая

Google

Nick
20.02.2017
16:32:02

Митко Соловец?
20.02.2017
16:32:43
http://stackoverflow.com/questions/18897092/sharing-a-jdbc-connection-across-threads
I wouldn't recommend you to share connection between threads, as operations with connection is quite slow and overall performance of you application may harm.

Adam
20.02.2017
16:33:19
поверим этому индусу

Igorek
20.02.2017
16:33:45
индус точно не может врать!
Ай промис ит мистер

Adam
20.02.2017
16:33:56
хотя
он в епаме работает
¯\_(ツ)_/¯

Ivan
20.02.2017
16:35:58
короче задача простая и с кучей потоков не связанная, хочется объявить транзакцию и выполнить работу в ее рамках, но нельзя тащить @Transactional и т.д. в том числе не хочется писать свой TransactionHolder который будет кешировать все в рамках потока, на Scala это делается изи в пол пинка, делаешь implicit параметр к методу и все збс, в java же учитывая что все клепают DAO(в том числе и я) это превращается в пиздец, потому что не хочется в метод добавлять Connection последним параметров, а если делать его на уровне конструктора, то объект должен жить столько же времени сколько и соединения(т.е. относительно не долго)

Митко Соловец?
20.02.2017
16:37:08
http://stackoverflow.com/questions/6952294/how-to-share-one-transaction-between-multi-threads

Nick
20.02.2017
16:37:15

Митко Соловец?
20.02.2017
16:37:17
здесь JTA советуют
Мда)
я правильно понял, что Иван хочет свой Transactional запилить?

Nick
20.02.2017
16:38:10

Ivan
20.02.2017
16:38:26

Nick
20.02.2017
16:38:43

Ivan
20.02.2017
16:39:08
ты мой коммент читал, понял что там написано?

Sergey
20.02.2017
16:40:03

Ivan
20.02.2017
16:40:14
не вегда но в этом случае да

Google

Ivan
20.02.2017
16:40:20
java не гавно

Nick
20.02.2017
16:40:49

Ivan
20.02.2017
16:41:07
написал ты и Дима, два главных местных троля

Nick
20.02.2017
16:41:44
Другие просто до сих пор феиспалмят с тебя

Митко Соловец?
20.02.2017
16:41:50

Ivan
20.02.2017
16:42:45
вот о чем я говорю http://scalikejdbc.org/documentation/transaction.html

Admin
ERROR: S client not available

Ivan
20.02.2017
16:42:48
примерно
в java такое не сделаешь

Nick
20.02.2017
16:43:20
Скалаик в пример
Да что с тобой

Митко Соловец?
20.02.2017
16:44:31

Ivan
20.02.2017
16:44:43
DB localTx { implicit session =>
объявляется сессия и нигде внутри блока явно не передается
хотя фактически она там юзается везде и код не грязный

Adam
20.02.2017
16:46:56
какой кошмар)

Ivan
20.02.2017
16:48:04
ну конечно @Transactional на методе лучше, хотя никто не в курсе че там под капотом и пишут например
@Async
@Transactional

Nick
20.02.2017
16:50:35

Ivan
20.02.2017
16:50:43
ты уверен?

Nick
20.02.2017
16:50:48
Угу

Google

Ivan
20.02.2017
16:50:48
а если транзакция уже была открыта

Nick
20.02.2017
16:51:03
Шта

Alexander
20.02.2017
16:51:47
Шта
ты че не открываешь уже открытую транзакцию пока она открывается?

Ivan
20.02.2017
16:52:05
у тебя в методе с @Transactional вызывается другой метод с
@Async
@Transactional
что произойдет в таком случае
будет использоваться старая транзакция или откроется новая?

Nick
20.02.2017
16:52:15
Вообще спринг создаёт прост прокси

Del
20.02.2017
16:53:05

Берял
20.02.2017
16:53:10

Del
20.02.2017
16:53:13
я не помню

Ivan
20.02.2017
16:53:26
и JPA тоже

Nick
20.02.2017
16:53:41

Ivan
20.02.2017
16:53:47

Del
20.02.2017
16:54:18
но новую открывает только если реквайрс нью, и вряд ли он по умолчанию стоит

Ivan
20.02.2017
16:55:00
тогда смотри у тебя транзакция крепится к потоку, ты вызываешь метод в другом потоке если он пытается использовать старую транзакцию то после того как закроется первый поток эта транзакция становится невалидной
секешь о чем я?

Del
20.02.2017
16:55:52
чот сложно, транзакции шарить между потоками
не сталкивался

Ivan
20.02.2017
16:56:14
я не шарю их между потоками, просто какой то неопытный чел сделал метод
@Async
@Transactional