После создания bean-компонента я хочу получить данные из базы данных, используя EntityManager. В конструкторе это невозможно, потому что EntityManager внедряется после вызова конструктора. Поэтому я попытался сделать это в методе, аннотированном @PostConstruct. Согласно API, методы PostConstruct вызываются после выполнения всех инъекций. Выполнение запроса работает, но всегда возвращает пустой список. Если я использую тот же запрос в другом методе, он возвращает правильный результат. Кто-нибудь знает, почему это не работает в методе PostConstruct?
@Stateful(mappedName = "price")
@Singleton
@Startup
public class PriceManagementBean implements PriceManagement {
@PersistenceContext
private EntityManager em;
private List<PriceStep> priceSteps = Collections.synchronizedList(new ArrayList<PriceStep>());
public PriceManagementBean(){
}
@PostConstruct
public void init(){
javax.persistence.Query query = em.createQuery("SELECT ps FROM PriceStep ps");
List<PriceStep> res = query.getResultList();
.....
}
}