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
I have done some tests and Spring Data ignore all characters between the method (find, delete,...) and By.
In https://github.com/spring-projects/spring-data-commons/blob/14d5747f68737bb44441dc511cf16393d9d85dc8/src/main/java/org/springframework/data/repository/query/parser/PartTree.java#L65 it is the \p{Lu}.*? part.
Spring Data only use return type to decide how handle responses.
So it is possible to define these following methods even if it is not correct semantically.
Department findAllByDepartmentId(Long Id);
List findOneByDepartmentName(String name);