All i know so far is that FindBy can return multiple results while FindOneBy will return a single result or null when we use it the following way.
List
findOneByXX will ensure that there is only one or no value, if there are 2 values an exception will be thrown.
findOneByXX
However findByXX doesn't make this check of uniqueness.
findByXX