0
我有一個實體類持久性JPA
公共Candidatos(){ }
public Candidatos(Integer identificacion) {
this.identificacion = identificacion;
}
public Integer getIdentificacion() {
return identificacion;
}
public void setIdentificacion(Integer identificacion) {
this.identificacion = identificacion;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
public Integer getVotos() {
return votos;
}
public void setVotos(Integer votos) {
this.votos = votos;
}
@Override
public int hashCode() {
int hash = 0;
hash += (identificacion != null ? identificacion.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Candidatos)) {
return false;
}
Candidatos other = (Candidatos) object;
if ((this.identificacion == null && other.identificacion != null) || (this.identificacion != null && !this.identificacion.equals(other.identificacion))) {
return false;
}
return true;
}
@Override
public String toString() {
return "entidades.Candidatos[ identificacion=" + identificacion + " ]";
}
}
和我的JPA控制器
公共類CandidatosJpaController實現Serializable {
public CandidatosJpaController(EntityManagerFactory emf) {
this.emf = emf;
}
private EntityManagerFactory emf = null;
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void create(Candidatos candidatos) throws PreexistingEntityException, Exception {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
em.persist(candidatos);
em.getTransaction().commit();
} catch (Exception ex) {
if (findCandidatos(candidatos.getIdentificacion()) != null) {
throw new PreexistingEntityException("Candidatos " + candidatos + " already exists.", ex);
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}
public void edit(Candidatos candidatos) throws NonexistentEntityException, Exception {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
candidatos = em.merge(candidatos);
em.getTransaction().commit();
} catch (Exception ex) {
String msg = ex.getLocalizedMessage();
if (msg == null || msg.length() == 0) {
Integer id = candidatos.getIdentificacion();
if (findCandidatos(id) == null) {
throw new NonexistentEntityException("The candidatos with id " + id + " no longer exists.");
}
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}
public void destroy(Integer id) throws NonexistentEntityException {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Candidatos candidatos;
try {
candidatos = em.getReference(Candidatos.class, id);
candidatos.getIdentificacion();
} catch (EntityNotFoundException enfe) {
throw new NonexistentEntityException("The candidatos with id " + id + " no longer exists.", enfe);
}
em.remove(candidatos);
em.getTransaction().commit();
} finally {
if (em != null) {
em.close();
}
}
}
public List<Candidatos> findCandidatosEntities() {
return findCandidatosEntities(true, -1, -1);
}
public List<Candidatos> findCandidatosEntities(int maxResults, int firstResult) {
return findCandidatosEntities(false, maxResults, firstResult);
}
private List<Candidatos> findCandidatosEntities(boolean all, int maxResults, int firstResult) {
EntityManager em = getEntityManager();
try {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Candidatos.class));
Query q = em.createQuery(cq);
if (!all) {
q.setMaxResults(maxResults);
q.setFirstResult(firstResult);
}
return q.getResultList();
} finally {
em.close();
}
}
public Candidatos findCandidatos(Integer id) {
EntityManager em = getEntityManager();
try {
return em.find(Candidatos.class, id);
} finally {
em.close();
}
}
public int getCandidatosCount() {
EntityManager em = getEntityManager();
try {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
Root<Candidatos> rt = cq.from(Candidatos.class);
cq.select(em.getCriteriaBuilder().count(rt));
Query q = em.createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
} finally {
em.close();
}
}
}
但當類CandidatosJpaController我實例的類
public static void main(String[] args) {
Candidatos candi = new Candidatos();
candi.setIdentificacion(1);
candi.setNombre("juan");
candi.setApellido("ovalle");
candi.setCurso("1001");
candi.setVotos(1);
CandidatosJpaController control = new CandidatosJpaController();
說我構造CandidatosJpaController不能應用於給定類型,該電源線:EntityManagerFactory的。
會發生什麼? ,因爲如果我創建一個空的構造函數 說我: 線程「主」java.lang.UnsupportedOperationException異常: 不支持。 在controladores.CandidatosJpaController。(CandidatosJpaController.java:31) 在votaciones.Votaciones.main(Votaciones.java:26)
錯誤信息非常清晰,我認爲。沒有無參數的構造函數。 – 2013-03-07 23:32:44
我不想聽起來粗魯,但JPA非常複雜。如果你不掌握Java的基礎知識(比如構造函數參數),那麼你每次都會碰壁。首先用簡單的程序學習Java基礎知識。 – 2013-03-07 23:35:44
**不能應用於給定的類型,請求:EntityManagerFactory **表示您將其他的東西而不是** EntityManagerFactory **傳遞給CandidatosJpaController custructor – spiritwalker 2013-03-07 23:39:03