Есть ли способ вставить @Named bean в Singleton?Inject @Named, @Stateful @Singleton EJB
Вот класс, который должен быть введен
@Named
@Stateful
@ConversationScoped
public class PlaySessionBean implements Serializable {
@PersistenceContext(unitName = "test-persistence-unit", type = PersistenceContextType.EXTENDED)
private EntityManager entityManager;
....
}
Компонент используется для просмотра полезности (генерируемой Forge)
Проблема заключается в том, что мне нужно получить доступ к PlaySessionBean
от @Startup @Singleton
@Startup
@Singleton
public class StartupBean {
private static final Logger LOGGER = Logger.getLogger(StartupBean.class.getName());
private EntityManager entityManager;
private static EntityManagerFactory factory =
Persistence.createEntityManagerFactory("wish-to-paris-persistence-unit");
private List<PlaySession> playSessions;
@PostConstruct
public void run() {
this.entityManager = factory.createEntityManager();
CriteriaQuery<PlaySession> criteria =
this.entityManager.getCriteriaBuilder().createQuery(PlaySession.class);
this.playSessions =
this.entityManager.createQuery(criteria.select(criteria.from(PlaySession.class)))
.getResultList();
this.entityManager.close();
}
....
Но это всегда не удалось, и жаловался, что PlaySession не является Entity
Есть ли способ ввести Именованный компонент Stateful в Singleton? Если нет, есть ли обходной путь?
Благодаря
Действительно ли ваша 'PlaySession' сущность? Является ли он аннотирован с помощью '@ Entity' и сопоставлен ли он с соответствующей таблицей репозитория с помощью аннотации' @ Table'? –
Какой подход вы взяли и что сработали? –
привет @BuhakeSindi, в соответствии с вашим ответом ниже, это сработало, и компонент состояния был введен в "singleton", как ожидалось. Большое спасибо! –