###前提・実現したいこと
JAVAのAPIから発行するSELECT/INSERT文を順次処理することで、採番する登録番号の一意性を保ちたいです。
###発生している問題・エラーメッセージ
javaでサーバーサイドのAPIを作成しています。
insertクエリの中で、登録番号を現在DBにあるレコードの最大値+1で採番しているのですが
同時に1000件程度のリクエストが来ることがあり、同じ番号を採番してしまうケースが発生します。
###該当のソースコード
申し訳ございませんが、手元にソースがないので明日追加します。
###試したこと
・対象のメソッドにsynchronizeをつける
→インスタンス内部の値というよりはクエリで取得する値の問題なので解決できず
・threadを使う
→これが正攻法かと思われるが、、、使い方がよくわからないです(すいません)、そもそもスレッドの実行ってクラス内で行うものなのか?別クラスからインスタンス生成して実行するものなのか・・・
※既存テーブルへの登録のため、テーブル定義の変更は難しいです。。。
###補足情報(言語/FW/ツール等のバージョンなど)
language:JAVA
DB:postgres
O/R:mybatis
Framework:spring
※mybatisのconnectionpool機能を使用しております