トランザクション連携すると困った事に
英語でMLに問い合わせが来てあわくっております、六であります。
トランザクション連携すると、複数回の送信で同じDtoのインスタンスを見てる場合同一トランザクション内で同じMaiの同じメソッドを呼び出すと、最終的な状態で全部送っちゃってます・・・。
TestMaiDto dto = new TestMaiDto(); dto.setFrom("hoge@example.com"); dto.setTo("fuga@example.com"); for(int i=0; i< 10; i++){ dto.setText(Integer.toString(i)); testMai.sendMail(dto); }
こんな感じの場合、10通メールが飛んで、その文言はそれぞれ0〜9がテンプレートに埋め込まれるはずなんですが、トランザクション連携をしてると、コミットした時点の状態で送るので、10通とも全部9が埋め込まれてしまいます。
現在、トランザクション連携はデフォルトでOFFになってるので普通に使う分には問題ありませんが、古いバージョンだとONになってるので気をつけて下さい。
さて、どうしたもんかなあこれは・・・。