persistierenden habe ich ein Vermächtnis app JEE5, füge ich eine Klasse „People“ und fügen Sie „von Hand“ in der Datenbank eine Menge von Datensätzen (nur Menschen hat Personen_Nr und einen String peopledesc)JPA kein Objekt J2EE
Wenn ich die Methode getAllPeople() verwende ich die Liste korrekt aufgefüllt bekomme, ist jedes Datum
dort aber wenn ich versuche, einen neuen Rekord von Code zu beharren persistPeople mit (People pep) Es tut einfach nichts
die system.out.println zeigt die dem Objekt hinzugefügte Beschreibung, so dass das neu erstellte Objekt an die Methode übergeben wird, aber nicht in der Datenbank beibehalten wird :(
In der Konsolenausgabe wird kein Fehler angezeigt.
People.java
@Entity
public class People implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int idpeople;
private String desc;
persistence.xml
<persistence-unit name="PersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>entities.People</class>
......
PeopleDAOImPL.JAVA
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceUnit;
import residencias.dominio.Renovacion;
@Stateless
public class PeopleDAOImpl implements PeopleDAO {
//EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceUnit");
@PersistenceUnit(unitName="PersistenceUnit")
private EntityManagerFactory emf;
@Override
public void persistPeople(People pep) {
EntityManager em = emf.createEntityManager();
System.out.println("description is :"+pep.getDesc());
em.persist(pep);
}
@Override
public List<People> getAllPeople() {
EntityManager em = emf.createEntityManager();
List<People> results = new ArrayList();
Query queryPrincipal;
try {
queryPrincipal = em.createQuery("SELECT p FROM People p");
results = queryPrincipal.getResultList();
return results;
} catch (Exception e) {
System.out.println(results.size());
return results;
} finally {
if (em != null) {
emf.close();
em.close();
}
}
}
Vielen Dank für die Antwort, habe ich versucht, Ihre Lösung, aber ich habe eine Null-Ausnahme-Zeiger, wenn EntityManager Aufruf em = emf.createEntityManager(); – Alexev