These are chat archives for scalikejdbc/ja

8th
Dec 2015
Kazuhiro Sera
@seratch
Dec 08 2015 00:50
ところで Future のやつ、直すべきだと思うのですがアイデアある人います?最終的には GitHub の issue 立てるなりするけど、まず日本語でアイデアあれば。
transform とかでいいのかな。
現行のtransformは使いづらい……
コミット失敗したらロールバックしてFailureに
Manabu Nakamura
@gakuzzzz
Dec 08 2015 07:26

あーなるほど。 Future が例外処理と一緒になってるせいでややこしい部分がでてきちゃってますね。
https://github.com/fsist/future-streams/blob/f682ffb025a621e1145a8934e5950e0760a3b9c3/src/main/scala/akka/http/util/FastFuture.scala#L39-L64

これの transformWith みたいなのつくって Fture.fromTry(Try(tx.commit())) とかするのが良さそう

Kazuhiro Sera
@seratch
Dec 08 2015 08:33
よかった、がくぞ先生が対応してくれそう。
kenji yoshida
@xuwei-k
Dec 08 2015 10:11
さすががくぞ先生だ
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:12
こんな感じでしょうか tkawachi/scalikejdbc@8238612
commit 失敗したら rollback 必要なんですかね?
Tsukasa Kitachi
@kxbmap
Dec 08 2015 13:17
commit失敗して、rollback無しでコネクションcloseした場合、そこでcommitされる、かもしれない?
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:18
ふうむ、、そうなんですか…
Tsukasa Kitachi
@kxbmap
Dec 08 2015 13:21
ちゃんと調べた訳じゃないです。ドライバとかコネクションプールの実装による、ってことだったと思う
これTryとEitherの場合は失敗したら外に例外飛ぶってことでいいんですよね
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:26
Future はスタックが切り替わるのでしょうがないですが、一貫性が無いですね…
Try の場合は Failure にする手もあるか
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:46
http://stackoverflow.com/a/9644783/339515 では rollback した方がいいのでは?的な回答がみつかった
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:52
テストまだだけどとりあえず PR 開いてみた scalikejdbc/scalikejdbc#468 どうやってテストするのがいいんだろ
Kazuhiro Sera
@seratch
Dec 08 2015 13:55
テストは java.sql.Connection を差し替えるとかでしょうね。
KAWACHI Takashi
@tkawachi
Dec 08 2015 13:56
あとでやってみますー