2016-05-13 10 views
1

: Ich bin in JPA und ich bin tryingg eine Probe hier gegründet zu schreiben und auszuführen: Sample JPAkann nicht die Erklärung des Elements ‚Persistenz‘ JPA finden und überwintern Anbieter

Das ist mein Tisch erstellt ist: enter image description here

hier meine persistance.xml Datei ist:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_0.xsd"> 
<persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL"> 
<provider>org.hibernate.ejb.HibernatePersistence</provider> 
<class>ir.ac.sbu.testsimplesql1.Employee</class> 
<properties> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/library?zeroDateTimeBehavior=convertToNull"/> 
    <property name="javax.persistence.jdbc.user" value="root"/> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    <property name="javax.persistence.jdbc.password" value="pass"/> 
    <property name="hibernate.archive.autodetection" value="class"/> 
    <property name="hibernate.show_sql" value="true"/> 
    <property name="hibernate.format_sql" value="true"/> 
    <property name="hbm2ddl.auto" value="update"/> 
</properties> 

ich habe auto generieren Modellklasse fr om Datenbank:

package ir.ac.sbu.testsimplesql1; 

import java.io.Serializable; 
import javax.persistence.Basic; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.NamedQueries; 
import javax.persistence.NamedQuery; 
import javax.persistence.Table; 
import javax.xml.bind.annotation.XmlRootElement; 

@Entity 
@Table(name = "Employee") 
@XmlRootElement 
@NamedQueries({ 
@NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e"), 
@NamedQuery(name = "Employee.findById", query = "SELECT e FROM Employee e WHERE e.id = :id"), 
@NamedQuery(name = "Employee.findByFistName", query = "SELECT e FROM Employee e WHERE e.fistName = :fistName"), 
@NamedQuery(name = "Employee.findByLastName", query = "SELECT e FROM Employee e WHERE e.lastName = :lastName"), 
@NamedQuery(name = "Employee.findByDept", query = "SELECT e FROM Employee e WHERE e.dept = :dept")}) 
public class Employee implements Serializable { 
private static final long serialVersionUID = 1L; 
@Id 
@Basic(optional = false) 
@Column(name = "id") 
private Integer id; 
@Column(name = "fistName") 
private String fistName; 
@Column(name = "lastName") 
private String lastName; 
@Column(name = "dept") 
private String dept; 

public Employee() { 
} 

public Employee(Integer id) { 
    this.id = id; 
} 

public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

public String getFistName() { 
    return fistName; 
} 

public void setFistName(String fistName) { 
    this.fistName = fistName; 
} 

public String getLastName() { 
    return lastName; 
} 

public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 

public String getDept() { 
    return dept; 
} 

public void setDept(String dept) { 
    this.dept = dept; 
} 

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

@Override 
public String toString() { 
    return "ir.ac.sbu.testsimplesql1.Employee[ id=" + id + " ]"; 
} 
} 

Das ist mein poem.xml: (Abhängigkeiten Tag)

<dependencies> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>javax.persistence</artifactId> 
     <version>2.0.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.2.8.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.27</version> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.5.2</version> 
    </dependency> 
</dependencies> 

Und das letzte, was ist meine Hauptfunktion:

public class EmployeeTest { 



private static EntityManager em; 

public static void main(String[] args) { 

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("EmployeeService"); 
    em = emf.createEntityManager(); 

    createEmployee(1, "Saint", "Peter", "Engineering"); 
    createEmployee(2, "Jack", " Dorsey", "Imaginea"); 
    createEmployee(3, "Sam", "Fox", "Imaginea"); 

} 

private static void createEmployee(int id, String firstName, String lastName, String dept) { 
    em.getTransaction().begin(); 
    Employee emp = new Employee(); 
    emp.setId(id); 
    emp.setFistName(firstName); 
    emp.setLastName(lastName); 
    emp.setDept(dept); 

    em.persist(emp); 
    em.getTransaction().commit(); 
} 
} 

Aber wenn ich diesen Code ausführen Ich Gesicht mit diesem Fehler: enter image description here

Ich habe diesen Fehler gesucht Knospe konnte nicht verstehen, was ich tun sollte. Ich habe auch diesen Link besucht: Can not find the declaration of element 'persistence'

javax.persistence.PersistenceException - JPA+Hibernate und viel mehr ähnliche Fragen ....

Kann jemand bitte helfen Sie mir diesen Fehler zu lösen?

Vielen Dank im Voraus für Ihre Aufmerksamkeit.

+0

Veröffentlichen Sie die Stapelverfolgung –

+0

@BhargavKumarR Ich weiß nicht, wie ich das tun soll. :( – TTS

+0

Erhalten Sie Ausnahme? Fügen Sie diese Ausnahme Stack-Trace hier –

Antwort

2

Sie können Ihre XML gegen die XSD hier überprüfen: http://www.freeformatter.com/xml-validator-xsd.html Sehr nützlich.

Ersetzen Sie den Anfang Ihrer xml mit:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
version="2.0"> 

Ich weiß nicht, warum, aber Ihr validierte nicht.

Auch Sie vermissen das Ende des Xml, aber ich denke, es ist nur ein Kopieren/Einfügen-Fehler.

+0

Ich habe es getan. Das gleiche passiert. – TTS

+0

Danke. Ich ersetzt meins mit Ihnen komplett und jetzt funktioniert es. Sie haben mir viel geholfen. :) – TTS

Verwandte Themen