2011-08-10 4 views
1

안녕하세요, 내 웹 응용 프로그램에서 데이터베이스에 개체를 추가하려고하는데 다음과 같은 예외가 발생합니다. java.lang.ClassFormatError : 클래스 파일 Entity/Rpxfornecedor_에 중복 필드 이름 & 서명이 있습니다. 엔티티 Rpxfornecedor이 코드 :EJB 및 JPA 클래스 형식 오류

@Entity 
@Table(name = "rpxfornecedor") 
@XmlRootElement 
@NamedQueries({ 
    @NamedQuery(name = "Rpxfornecedor.findAll", query = "SELECT r FROM Rpxfornecedor r"), 
    @NamedQuery(name = "Rpxfornecedor.findByFid", query = "SELECT r FROM Rpxfornecedor r WHERE r.fid = :fid"), 
    @NamedQuery(name = "Rpxfornecedor.findByFNome", query = "SELECT r FROM Rpxfornecedor r WHERE r.fNome = :fNome"), 
    @NamedQuery(name = "Rpxfornecedor.findByFDescri\u00e7\u00e3o", query = "SELECT r FROM Rpxfornecedor r WHERE r.fDescri\u00e7\u00e3o = :fDescri\u00e7\u00e3o"), 
    @NamedQuery(name = "Rpxfornecedor.findByFNTel", query = "SELECT r FROM Rpxfornecedor r WHERE r.fNTel = :fNTel"), 
    @NamedQuery(name = "Rpxfornecedor.findByFNCel", query = "SELECT r FROM Rpxfornecedor r WHERE r.fNCel = :fNCel"), 
    @NamedQuery(name = "Rpxfornecedor.findByFEndere\u00e7o", query = "SELECT r FROM Rpxfornecedor r WHERE r.fEndere\u00e7o = :fEndere\u00e7o"), 
    @NamedQuery(name = "Rpxfornecedor.findByFEmail", query = "SELECT r FROM Rpxfornecedor r WHERE r.fEmail = :fEmail"), 
    @NamedQuery(name = "Rpxfornecedor.findByFFax", query = "SELECT r FROM Rpxfornecedor r WHERE r.fFax = :fFax"), 
    @NamedQuery(name = "Rpxfornecedor.findByFActivo", query = "SELECT r FROM Rpxfornecedor r WHERE r.fActivo = :fActivo"), 
    @NamedQuery(name = "Rpxfornecedor.findByFDataAct", query = "SELECT r FROM Rpxfornecedor r WHERE r.fDataAct = :fDataAct"), 
    @NamedQuery(name = "Rpxfornecedor.findByFDataNAct", query = "SELECT r FROM Rpxfornecedor r WHERE r.fDataNAct = :fDataNAct")}) 
public class Rpxfornecedor implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Basic(optional = false) 
    @NotNull 
    @Size(min = 1, max = 80) 
    @Column(name = "FID") 
    private String fid; 
    @Size(max = 80) 
    @Column(name = "FNome") 
    private String fNome; 
    @Size(max = 1000) 
    @Column(name = "FDescri\u00e7\u00e3o") 
    private String fDescrição; 
    @Size(max = 45) 
    @Column(name = "FNTel") 
    private String fNTel; 
    @Size(max = 45) 
    @Column(name = "FNCel") 
    private String fNCel; 
    @Size(max = 200) 
    @Column(name = "FEndere\u00e7o") 
    private String fEndereço; 
    @Size(max = 100) 
    @Column(name = "FEmail") 
    private String fEmail; 
    @Size(max = 45) 
    @Column(name = "FFax") 
    private String fFax; 
    @Column(name = "FActivo") 
    private Character fActivo; 
    @Basic(optional = false) 
    @NotNull 
    @Size(min = 1, max = 200) 
    @Column(name = "FDataAct") 
    private String fDataAct; 
    @Size(max = 200) 
    @Column(name = "FDataNAct") 
    private String fDataNAct; 

    public Rpxfornecedor() { 
    } 

    public Rpxfornecedor(String fid) { 
     this.fid = fid; 
    } 

    public Rpxfornecedor(String fid, String fDataAct) { 
     this.fid = fid; 
     this.fDataAct = fDataAct; 
    } 

    public String getFid() { 
     return fid; 
    } 

    public void setFid(String fid) { 
     this.fid = fid; 
    } 

    public String getFNome() { 
     return fNome; 
    } 

    public void setFNome(String fNome) { 
     this.fNome = fNome; 
    } 

    public String getFDescrição() { 
     return fDescrição; 
    } 

    public void setFDescrição(String fDescrição) { 
     this.fDescrição = fDescrição; 
    } 

    public String getFNTel() { 
     return fNTel; 
    } 

    public void setFNTel(String fNTel) { 
     this.fNTel = fNTel; 
    } 

    public String getFNCel() { 
     return fNCel; 
    } 

    public void setFNCel(String fNCel) { 
     this.fNCel = fNCel; 
    } 

    public String getFEndereço() { 
     return fEndereço; 
    } 

    public void setFEndereço(String fEndereço) { 
     this.fEndereço = fEndereço; 
    } 

    public String getFEmail() { 
     return fEmail; 
    } 

    public void setFEmail(String fEmail) { 
     this.fEmail = fEmail; 
    } 

    public String getFFax() { 
     return fFax; 
    } 

    public void setFFax(String fFax) { 
     this.fFax = fFax; 
    } 

    public Character getFActivo() { 
     return fActivo; 
    } 

    public void setFActivo(Character fActivo) { 
     this.fActivo = fActivo; 
    } 

    public String getFDataAct() { 
     return fDataAct; 
    } 

    public void setFDataAct(String fDataAct) { 
     this.fDataAct = fDataAct; 
    } 

    public String getFDataNAct() { 
     return fDataNAct; 
    } 

    public void setFDataNAct(String fDataNAct) { 
     this.fDataNAct = fDataNAct; 
    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (fid != null ? fid.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 Rpxfornecedor)) { 
      return false; 
     } 
     Rpxfornecedor other = (Rpxfornecedor) object; 
     if ((this.fid == null && other.fid != null) || (this.fid != null && !this.fid.equals(other.fid))) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "Entity.Rpxfornecedor[ fid=" + fid + " ]"; 
    } 

} 

오류는 다음 코드에서 발생

public Rpxfornecedor addfornecedor(String Id, String nome, String endereço, String email, String cell, String tel, String fax, String des, String dnow){ 
    Rpxfornecedor Forn = new Rpxfornecedor(); 


    //em.flush(); 
    Forn.setFid(Id); 
    Forn.setFNome(nome); 
    Forn.setFEndereço(endereço); 
    Forn.setFEmail(email); 
    Forn.setFNCel(cell); 
    Forn.setFNTel(tel); 
    Forn.setFFax(fax); 
    Forn.setFDescrição(des); 
    Forn.setFActivo('Y'); 
    Forn.setFDataAct(dnow); 
    Forn.setFDataNAct("fbedfdf");  

    if(Forn != null){ 
     em.persist(Forn); 
     //em.persist(Forn);  
    } 


    return Forn; 
    } 

그래서 어떤 조언 주시면 감사하겠습니다.

사용중인 JPA 구현은 EclipseLink 2.0입니다. 나는 jpa를 변경해 보았지만 netbeans 7.0.1과 함께 제공되는 모든 제품에서 동일한 문제가 발생했습니다.

+0

JPA 구현을 사용중인해야 하는가? 어쩌면 오류 메시지에서 엔티티 이름의 밑줄이 있음을 알았을 것입니다. 즉, 오류는 jpa 공급자가 컴파일하는 동안 생성되는 메타 모델 클래스에 있음을 의미합니다. 저에게 jpa 공급자의 버그처럼 보입니다. –

답변

0

마침내 데이터베이스와 엔터티의 필드 이름을 수정하여 문제를 해결했습니다. 예 :

@Column(name = "FDescri\u00e7\u00e3o") 

@Column(name = "FDescricao") 
관련 문제