0
我有使用JEE5遺留的應用程序,我在數據庫中添加一個類「人物」,並加上「手」了很多紀錄(人只具有的peopleid和一個字符串peopledesc)JPA不是持久的對象J2EE
如果我使用的方法getAllPeople()我得到的名單無誤,每一個數據是有
但是當我嘗試通過代碼使用persistPeople堅持一個新的紀錄(人民PEP)這只是什麼都不做
的system.out.println顯示添加到對象的描述,以便將新創建的對象傳遞給方法,但它不會保留在數據庫中:(
控制檯輸出中未顯示錯誤。
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();
}
}
}
謝謝你的答案,我想你的解決方案,但調用的EntityManager時,我得到一個空指針異常EM = emf.createEntityManager(); – Alexev