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과 함께 제공되는 모든 제품에서 동일한 문제가 발생했습니다.
JPA 구현을 사용중인해야 하는가? 어쩌면 오류 메시지에서 엔티티 이름의 밑줄이 있음을 알았을 것입니다. 즉, 오류는 jpa 공급자가 컴파일하는 동안 생성되는 메타 모델 클래스에 있음을 의미합니다. 저에게 jpa 공급자의 버그처럼 보입니다. –