2014-02-04 3 views
0

Я пытаюсь использовать для LASYDataModel для табличного представления в JSF, проблема в том, что я не могу ничего вводить в класс. Я всегда получаю null за введенный объект.Невозможно вставить EJB в PrimeFaces LazyDataModel

Например я инъекционного

@PersistenceContext(unitName = "domainDS") 
private EntityManager em; 

или EJB

@EJB 
OrganizationHandler orgHandler; 

, но я получаю пустой для обоих из них.

Всего ленивый DataModel класс

import java.io.Serializable; 
import java.util.List; 
import java.util.Map; 

import javax.ejb.EJB; 
import javax.ejb.Stateless; 
import javax.inject.Named; 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 

import org.primefaces.model.LazyDataModel; 
import org.primefaces.model.SortOrder; 

import si.arctur.controller.OrganizationHandler; 
import si.arctur.model.Organization; 

@Named 
@Stateless 
public class LazyOrganizationDataModel extends LazyDataModel<Organization> implements Serializable { 

private static final long serialVersionUID = 675394666656356734L; 

@PersistenceContext(unitName = "domainDS") 
private EntityManager em; 

@EJB 
OrganizationHandler orgHandler; 

public LazyOrganizationDataModel() { 
    super(); 
} 

@SuppressWarnings("unchecked") 
@Override 
public List<Organization> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) { 

    List<Organization> data = orgHandler.selectOrganizatoins(first, pageSize, sortField, "asc", filters); 
    //row count 
    this.setRowCount(data.size()); 

    return data; 
    } 
} 

ответ

1

Вы, вероятно, не вводя ленивую модель данных. Основываясь на своих примерах, они показывают, что кто-то создает экземпляр. Вместо этого вы должны получить ссылку через CDI для компонента.

+0

Tnx, что это было ... Я не обновляю знания CDI ;-) – simonC

Смежные вопросы