В настоящее время я создаю класс доступа к данным EJB3 для обработки всех операций с базой данных в своем Java EE 6-приложении. Теперь, поскольку Java EE 6 предоставляет новую ApplicationScoped-Annotation, мне интересно, какое состояние должен иметь мой EJB, или если он должен быть без гражданства.
Можно ли позволить DAO быть сеансом @Stateless Bean или @ApplicationScoped Bean? Как насчет @Синглтона? Каковы различия между этими вариантами, связанными с DAO?
EDIT: Я использую Glassfish 3.0.1 с полной платформой Java EE 6