Boa noite !, com um probleminha quta me deixando com dor de cabeça já, olhem só
tenho um converter que faz uma busca por ID, mas ele ta retornando null, o curioso eh que tenho ooutro converter que funciona perfeitamente, utilizando a mesma busca por ID minhas classes:
AUTORIZACOES
@Entity
@Table(uniqueConstraints = {
@UniqueConstraint(columnNames = "descricao")})
public class Autorizacao implements Serializable, Modelo<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer id;
private String descricao;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "autorizacao")
private List<UsuarioAutorizacao> autorizacaoDeUsuarios;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
/**
* @return the autorizacaoDeUsuarios
*/
public List<UsuarioAutorizacao> getAutorizacaoDeUsuarios() {
return autorizacaoDeUsuarios;
}
/**
* @param autorizacaoDeUsuarios the autorizacaoDeUsuarios to set
*/
public void setAutorizacaoDeUsuarios(List<UsuarioAutorizacao> autorizacaoDeUsuarios) {
this.autorizacaoDeUsuarios = autorizacaoDeUsuarios;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Autorizacao other = (Autorizacao) obj;
if (descricao == null) {
if (other.descricao != null) {
return false;
}
} else if (!descricao.equals(other.descricao)) {
return false;
}
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
return true;
}
}
AutorizacaoDAO
public interface AutorizacaoDAO extends IDAO<Autorizacao, Integer>{
}
AutorizacaoJPADAO
@Repository
@Transactional
public class AutorizacaoJPADAO extends GenericJPADAO<Autorizacao, Integer> implements AutorizacaoDAO {
public AutorizacaoJPADAO() {
super(Autorizacao.class);
}
}
GenericJPADAO
@Repository
@Transactional
public class GenericJPADAO<T extends Modelo<ID>, ID> implements IDAO<T, ID> {
@PersistenceContext
private EntityManager em;
private Class<T> clazz;
public EntityManager getEm() {
return em;
}
/**
* Construtor esperando o clazz da Entity da classe filha *
*/
public GenericJPADAO(Class<T> clazz) {
this.clazz = clazz;
}
public GenericJPADAO() {
}
public T buscarPorId(ID id) throws DAOException {
try {
return em.find(clazz, id);
} catch (Exception e) {
throw new DAOException("Não foi possÃvel fazer a busca", e);
}
}
public List<T> buscarTodos() throws DAOException {
try {
String nomeDaClass = clazz.getSimpleName();
Query query = em.createQuery("select a FROM " + nomeDaClass + " a ");
return query.getResultList();
} catch (Exception e) {
throw new DAOException("Não foi possÃvel fazer a busca", e);
}
}
@Transactional
public void salvar(T o) throws DAOException {
try {
em.merge(o);
} catch (Exception e) {
throw new DAOException("Não foi possÃvel salvar.", e);
}
}
@Transactional
public void excluir(T o) throws DAOException {
try {
o = buscarPorId(o.getId());
em.remove(o);
} catch (Exception e) {
e.printStackTrace();
throw new DAOException("Não foi possÃvel excluir.", e);
}
}
}
AutorizacaoService
public interface AutorizacaoService extends IService<Autorizacao, Integer> {
}
AutorizacaoServiceImpl
@Service
@Transactional
public class AutorizacaoServiceImpl extends GenericServiceImpl<Autorizacao, Integer> implements AutorizacaoService {
@Autowired //Injetavel
private AutorizacaoDAO autorizacaoDAO;
@Override
public IDAO<Autorizacao, Integer> getDAO() {
return autorizacaoDAO;
}
}
GenericServiceImpl
@Service
public abstract class GenericServiceImpl<T,ID> implements IService<T, ID> {
/** Método para acessar uma implementacao de IDAO **/
public abstract IDAO<T, ID> getDAO();
public void salvar(T o) throws ServiceException {
try {
getDAO().salvar(o);
} catch (DAOException e) {
e.printStackTrace();
throw new ServiceException(e);
}
}
public void excluir(T o) throws ServiceException {
try {
getDAO().excluir(o);
} catch (DAOException e) {
e.printStackTrace();
throw new ServiceException(e);
}
}
public T buscarPorId(ID id) throws ServiceException {
try {
return getDAO().buscarPorId(id);
} catch (DAOException e) {
e.printStackTrace();
throw new ServiceException(e);
}
}
public List<T> buscarTodos() throws ServiceException {
try {
return getDAO().buscarTodos();
} catch (DAOException e) {
e.printStackTrace();
throw new ServiceException(e);
}
}
}
@FacesConverter("autorizacoesConverter")
@Component
public class AutorizacaoConverter implements Converter {
@Autowired
AutorizacaoService autorizacaoService;
public AutorizacaoConverter() {
autorizacaoService = new AutorizacaoServiceImpl();
}
//@Inject
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String id) {
if (id == null || id.equals("")) {
return null;
}
try {
//Tentando Converter
Integer idAutorizacao = Integer.parseInt(id);
//Tentando buscar por id
// aqui da null pointer quando executa a busca por id
Autorizacao autorizacao = autorizacaoService.buscarPorId(idAutorizacao);
return autorizacao;
} catch (NumberFormatException e) {
//e.printStackTrace();
return null;
} catch (ServiceException e) {
// e.printStackTrace();
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object objeto) {
try {
Autorizacao autorizacao = (Autorizacao) objeto;
return autorizacao.getId().toString();
} catch (Exception e) {
//e.printStackTrace();
return null;
}
}
}
já nem sei o que fazer mais se alguem puder me ajudar, agradeço !