Предполагая, что в вашем коде нет серьезных технических ошибок, эти ошибки, как правило, связаны с состоянием данных, возвращаемых менеджером сущностей.
Cluprit: База данных?
Конечно, у вас может быть проблема с кэшированием в базовом БД. Однако это маловероятно, учитывая ваше описание операторов system.out.
Виновник: боб?
Более вероятным виновником является то, что результаты запроса каким-то образом кэшируются в компоненте, или, скорее, в возвращаемом значении набора результатов запроса. Если ваша тестовая база данных допускает грязное чтение, это может быть объяснением. Это можно проверить, например, используя @Interceptor для обновления запроса перед любыми вызовами getToys ().
Еще одна потенциальная ловушка здесь: ошибка безгражданства и кэширование.
Наконец: краткое слово о безгражданстве. Хотя вы и правы, что отсутствие состояния компонента должно приводить, вообще говоря, к данным, которые не устарели - это не всегда так. Реальное определение bean-компонентов без сохранения состояния в контексте EJB заключается в том, что эти bean-компоненты не гарантируют наличие состояния в течение жизненного цикла приложения.
В целом, есть 3 различных способа добраться до сути вашей проблемы:
1) Убедитесь, что база данных не делает ничего смешного с грязным чтением.
2) Проверьте, нет ли проблем с перехватом вызова getToys () и выполнением / проверкой запроса к базе данных.
3) Убедитесь, что требуемый тип безгражданства реализуется вашим контейнером ejb.