Galera, no curso anterior eu fiz a parte opcional de criar lista usando LazyDataModel, ao chegar nesse curso ao modificar as classes para usar CDI a lista parou de funcionar e não estou conseguindo arrumar, segue o código: LivroDataModel
public class LivroDataModel extends LazyDataModel<Livro> implements Serializable{
private static final long serialVersionUID = 1L;
@Inject
LivroDao livroDao;
public LivroDataModel() {
super.setRowCount(this.livroDao.quantidadeDeElementos());
}
@Override
public List<Livro> load(int inicio, int quantidade, String campoOrdenacao, SortOrder sentidoOrdenacao,
Map<String, Object> filtros) {
String titulo = (String) filtros.get("titulo");
if (filtros.get("titulo") != null) {
return this.livroDao.listaTodosPaginada(inicio, quantidade, "titulo", titulo, campoOrdenacao, sentidoOrdenacao);
} else if (filtros.get("isbn") != null) {
String isbn = (String) filtros.get("isbn");
return this.livroDao.listaTodosPaginada(inicio, quantidade, "isbn", isbn, campoOrdenacao, sentidoOrdenacao);
} else if (filtros.get("preco") != null) {
String preco = (String) filtros.get("preco");
return this.livroDao.listaTodosPaginada(inicio, quantidade, "preco", preco,campoOrdenacao, sentidoOrdenacao);
} else if (filtros.get("data") != null) {
String data = (String) filtros.get("data");
return this.livroDao.listaTodosPaginada(inicio, quantidade, "data", data, campoOrdenacao, sentidoOrdenacao);
}else if(filtros.get("genero") != null) {
String genero = (String) filtros.get("genero");
return this.livroDao.listaTodosPaginada(inicio, quantidade, "genero", genero,campoOrdenacao, sentidoOrdenacao);
}
return this.livroDao.listaTodosPaginada(inicio, quantidade, "titulo", titulo, campoOrdenacao, sentidoOrdenacao);
}
}
LivroDao
public class LivroDao implements Serializable{
private static final long serialVersionUID = 1L;
@Inject
EntityManager em;
private DAO<Livro> dao;
@PostConstruct
void init() {
this.dao = new DAO<Livro>(em, Livro.class);
}
public int quantidadeDeElementos() {
return dao.quantidadeDeElementos();
}
public void adiciona(Livro t) {
dao.adiciona(t);
}
public void remove(Livro t) {
dao.remove(t);
}
public void atualiza(Livro t) {
dao.atualiza(t);
}
public List<Livro> listaTodos() {
return dao.listaTodos();
}
public Livro buscaPorId(Integer id) {
return dao.buscaPorId(id);
}
public List<Livro> listaTodosPaginada(int firstResult, int maxResults, String coluna, String valor,
String campoOrdenacao, SortOrder sentidoOrdenacao) {
return dao.listaTodosPaginada(firstResult, maxResults, coluna, valor, campoOrdenacao, sentidoOrdenacao);
}
public List<Livro> listaTodosPaginada(int firstResult, int maxResults, String coluna, Double valor,
String campoOrdenacao, SortOrder sentidoOrdenacao) {
return dao.listaTodosPaginada(firstResult, maxResults, coluna, valor, campoOrdenacao, sentidoOrdenacao);
}
}
ERRO
java.lang.NullPointerException
br.com.caelum.livraria.modelo.LivroDataModel.<init>(LivroDataModel.java:21)
br.com.caelum.livraria.bean.LivroBean.<init>(LivroBean.java:31)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)