The current EntityRepository interface is good, but makes some extensions inflexible.
There are three categories of methods:
- Wrappers for low level persistence APIs.
These three concerns should be broken out into their own interfaces, which EntityRepository can then extend. This would allow users to leverage persistence and Streaming, without needing to bring in everything.