Ik heb deze applicatie die ik gebruik JSF 2.0 en EclipseLink, ik heb entiteiten gemaakt voor een database gemaakt in MySQL, deze entiteiten aangemaakt met behulp van netbeans 7.1.2, het wordt automatisch aangemaakt.
Dan gebruik ik sessiebonen om met deze entiteiten te werken, het ding is dat de em.createQuery
altijd een null retourneert, hoewel ik NamedQueries in de entiteiten heb gecontroleerd en ze perfect matchen
een voorbeeld van de entiteiten genaamd queries: -
@NamedQueries({
@NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"),
@NamedQuery(name = "Users.findByUserId", query = "SELECT u FROM Users u WHERE u.userId = :userId"),
@NamedQuery(name = "Users.findByUsername", query = "SELECT u FROM Users u WHERE u.username = :username"),
@NamedQuery(name = "Users.findByEmail", query = "SELECT u FROM Users u WHERE u.email = :email"),
merk op hoe ik deze findByEmail-query in de sessieboon gebruik:
public Users findByEmail(String email){
em.getTransaction().begin();
String find = "Users.findByEmail";
Query query = em.createNamedQuery(find);
query.setParameter("email", email);
Users user = (Users) query.getSingleResult();
maar het keert altijd null terug van dit em.createNamedQuery, ik probeerde eerst .createQuery, maar het had ook geen zin.
de stacktrace van de uitzondering
Caused by: java.lang.NullPointerException
at com.readme.entities.sessionBeans.UsersFacade.findByEmail(UsersFacade.java:48)
at com.readme.user.signup.SignupBean.checkAvailability(SignupBean.java:137)
at com.readme.user.signup.SignupBean.save(SignupBean.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
Wat lijkt hier het probleem te zijn?