The actual implementation of the endpoint looks fine.
But, the behavior is actually surprising – as "Starts with" isn't really jumping to a specific page/offset in the entire list. Instead, it "filters" the list of results to only ones that "Start With" a specific letter(s) and any letter after that.
This behavior seems different from 6.x, but unsure as to why
Pablo Prieto will investigate how this works in 6.x and report back.
Andrea expressed some possible concerns about using RestRepository for the implementation – usually that's used for new endpoints, and this is more like a subpath / sub-endpoint.
Andrea will look at it further though, and report back his concerns & suggestions in the PR itself
Andrea Bollini (4Science) plans to work on this (as Andrea P is on holiday). Will also look into splitting them up more, as the PRs are massive and hard to review.
Our Best Practice: We should refrain from using "RuntimeException" directly, and instead look to use Spring Data Rest Exceptions (like "DataAccessException") which extend RuntimeException. If we find we need a new exception type, we should create it.