Spring Data JPAのfindByEmailをOptionalにすれば、見つからないときも安全だと思っていた。ところが同じメールアドレスが2行あった日だけ、利用者の詳細画面がエラーになる。Optionalは「0件でもよい」という表現で、複数件から1件を選ぶ指示でも、重複を防ぐ制約でもありません。検索条件とDBの約束まで揃える必要があります。 この記事でわかること検索結果が0件・1件・2件のとき、Optional・単一Entity・Listがそれぞれ何を返すか。「見つからない」が正常な検索と、必須 ...