EJB - это управляемый контейнером компонент. Это означает, что контейнер управляет множеством параметров, таких как транзакция, безопасность, доступ к ресурсам (например, база данных), и предлагает такие возможности, как таймеры, удаленный доступ или перехватчики. Еще одним преимуществом является пул и повторное использование экземпляров.
Я бы сказал, что если вам нужно что-то из опций, управляемых этим контейнером, например, менеджер сущностей, то используйте EJB, в вашем случае SLSB. Но если вам не нужны какие-либо из предоставленных функций, то обычный POJO сделает эту работу.
Если классы XXXRepository не являются SLSB, как они получают доступ к базе данных для выполнения операций CRUD? Используете ли вы сеанс Hibernate напрямую? Как управляются транзакции? В этом случае может иметь смысл преобразовать эти классы в SLSB и использовать менеджер внедренных сущностей.
Адам Бьен написал книгу под названием Реальный мир Java EE Pattern . В этой книге он пишет о хороших архитектурах EJB, а также упоминает, какие классы должны быть EJB (например, ServiceFacade в качестве границы транзакции) и какие классы можно использовать в качестве POJO.