SQL
やりたいこと flywayによるマイグレーションでテーブルが追加された場合に、共通のトリガー設定SQLを動かすようなことをします。 生で書いてしまった場合1度しか実行されないため、これを実現するには工夫が必要です。 やり方 Callback機能を利用することで…
本文 タイトルとMySQLの公式ドキュメントに書かれている内容が全てです。 dev.mysql.com 「SQL_CALC_FOUND_ROWS SELECT FOUND_ROWS()」というような形で検索しても非推奨化している旨がパッとは出てこなかったためこの記事を書きました。 補足 公式ドキュメ…
NamedParameterJdbcTemplateに対して発行するクエリで、JSON配列をパラメータとして設定する所で詰まったので、備忘用のメモです。 状況 以下のような処理を行うクエリを作成していました。 select JSON_OVERLAPS(/* テーブルから取得したJSON配列 */, /* パ…
BeanPropertySqlParameterSourceの配列を作ってSimpleJdbcInsert#executeBatchに入れるとできます。 //配列を作る関数 private BeanPropertySqlParameterSource[] makeParamArray(List entities){ BeanPropertySqlParameterSource[] sources = new BeanPrope…
wrongwrong163377.hatenablog.com 前回の記事がトラブっていた原因が判明したので書き直します。 原因 NOT NULLなEnumカラムに対して値を指定しない場合、com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column '[カラム名]'…
この記事に書いたやり方でも動きますが、より演繹的な方法が有ったのでこちらもどうぞ。wrongwrong163377.hatenablog.com 問題 SimpleJdbcInsertでInsert時に、DDLでNOT NULLとDEFAULTを設定したカラムについてMapSqlParameterSourceに値を指定しなかった場…