Jpa query return NullPointerException

Bom pessoal, preciso de ajuda.

Tenho uma classe dao no meu Sistema, chamada JpaResourceDao. Dentro dela estou tentando buscar as informações de um model do meu sistema, chamado Resource mas etou recebendo sempre o erro java.lang.NullPointerException na linha “return (Resource) manager.createNativeQuery(queryResource,Resource.class).getSingleResult();

Tenho uma classe chamada Resource que está anotada como entidade.

Já tentei várias coisas e não consigo.

Alguem poderia me ajudar?


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Repository;

import br.com.guiatelesul.sig.models.Resource;

@Repository
public class JpaResourceDao implements ResourceDao{

	@PersistenceContext
	EntityManager manager;

	private static final Logger logger = Logger.getLogger(JpaWebsiteDao.class);
	
	public Resource searchByEmail(String email){
		logger.info("Searching Resource by Email : "+email);
		String queryResource = "from Resource where res_EMAIL = '" + email + "' ";
		return (Resource) manager.createNativeQuery(queryResource,Resource.class).getSingleResult();

	}
}


@Entity
@Table(name="is_resource")
public class Resource {

	@Id
	@GeneratedValue
	@Column(name = "res_ID")
	private int id;

	@Column(name = "res_ACTIVE")
	private int active;

	@Column(name = "res_AVATAR")
	private String avatar;

	@Column(name = "res_CODE")
	private String code;

	@Column(name = "res_NAME")
	private String name;

	@Column(name = "res_EMAIL")
	private String email;

	@Column(name = "res_PHONE1")
	private String phone1;

	@Column(name = "res_PHONE2")
	private String phone2;

	@Column(name = "res_PASSWORD")
	private String password;

	@Column(name = "res_IDCITY")
	private int city;

	@Column(name = "res_IDSTATE")
	private int state;

	@Column(name = "res_LEVEL")
	private String level;

            //Getters and Setters
}

Vote tem que usar um try/catch como abaixo para tratar caso a query não retorne resultados

try{

catch (NoResultException nre){

}

OI edulemos,

Obrigado pela resposta. Fiz as alterações que você disse e o problema continua o mesmo.

public Resource searchByEmail(String email) {
		logger.info("Searching Resource by Email : " + email);
		String queryResource = "from Resource where res_EMAIL = '" + email + "' ";
		Resource rs;
		try {
			rs = (Resource) manager.createQuery(queryResource, Resource.class).getSingleResult();
			return rs;
		} catch (NoResultException nre) {
			System.out.println("ERRO");
			return null;
		}
	}

Tendo em conta que o erro era NullPointerException e o que alteraste foi para não dar erro quando não há resultados (NoResultException), é normal que o problema continue o mesmo.

A tua variavel manager deve estar a null, o que podes facilmente confirmar colocando antes da linha do Null Pointer:

System.out.println(manager);

Oi pmim,

Realmente o manager está null.
Mas não sei como resolver pois crio essa classe da mesma forma que crio outras que estão funcionando.

Boa tarde,

Altere a query from Resource where res_EMAIL para from Resource as rec where rec.email.

Você esta usando o JPA, entao quando voce faz createQuery, os campos tem que ser de acordo com o java.