@Column(unique=true)
データベースにデータを挿入する前に、重複する値をチェックするためのベストプラクティスを使用して、ユーザー名に一意の制約を設定しますか?
- 同じユーザー名を持つデータを挿入しようとすると、プログラムによってスローされる例外をキャッチします。
- 挿入する前に、指定されたユーザー名が既に存在するかどうかをデータベースに確認してください。
解決策 1 (try-catch) で問題ないと思います。解決策 2 では、データベースに同時実行性がある場合に備えて、例外処理が必要です。
そのようなユーザー名データが UI に入力されたときに、そのような UI が存在すると仮定して、ユーザー名の重複をすぐに確認します。たとえば、javascript/XHR を使用します。
JavaScript の検証がスキップされ、状況が変わった可能性があるため、送信後に再確認してください。
それでも重複したユーザー名が存在する場合 (チェックが失敗したか、誰かが同時に挿入したために)、例外的なケースのように聞こえるので、例外をキャッチします。
つまり、両方のオプションと 2 番目のチェックが 2 回行われます。