J'étais confronté au même problème. La cause principale était la non-concordance entre la relation non nullable @ManyToOne et les données persistantes dans la table.J'ai eu ceci :
@ManyToOne(optional = false)
@JoinColumn(name="batch_id")
private Batch batch;
ce qui signifie que batch_id ne peut être nul dans aucune ligne. Cependant, mes lignes avaient une valeur nulle pour la clé étrangère batch_id. Après avoir supprimé optional =false (qui est la règle métier attendue), findById a commencé à fonctionner comme prévu.
Vous avez une indication de ce fil :Je suis fatigué de faire quelque chose avec JpaRepository mais je ne trouve pas de ligne avec findById ,