मैं अपने शिक्षक के दस्तावेज़ द्वारा प्रदान की गई जानकारी का पालन करके एक साधारण जेपीए 2.0 प्रोजेक्ट स्थापित करने की कोशिश कर रहा हूं। मैं इस पर घंटों के लिए रहा हूं, लेकिन कोई फर्क नहीं पड़ता कि मैं क्या करता हूं जब मैं EntityManagerFactory: बनाने का प्रयास करता हूं तो मुझे हमेशा यह अपवाद मिलता है। मुझे इस अपवाद के बारे में कुछ समान प्रश्न मिल गए हैं, लेकिन कोई समाधान नहीं है जो मैं सक्षम हूं काम में जुटना। मुझसे यहां क्या गलत हो रहा है?javax.persistence.PersistenceException: EntityManager के लिए कोई दृढ़ता प्रदाता
मैं ग्रहण (कोई कमांड प्रॉम्प्ट)
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named course
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at message.SaveMessage.main(SaveMessage.java:8)
निर्देशिका संरचना
मेरी persistence.xml से इस प्रोजेक्ट बनाया
<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">
<persistence-unit name="course" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/StudentDB" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="pasapas2005" />
</properties>
</persistence-unit>
</persistence>
मेरी कक्षा
package message;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class Message implements Serializable {
private long id;
private String text;
public Message() {
}
public Message(long id, String text) {
this.setId(id);
this.setText(text);
}
@Id
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
मेरे मेरी परीक्षक (मुख्य) वर्ग
package message;
import javax.persistence.*;
public class SaveMessage {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("course");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Message message = new Message(1, "Hello world");
em.persist(message);
tx.commit();
em.close();
System.out.println("message saved");
}
}
जांचें कि कक्षा org.hibernate.ejb.Hibernat ePersistence आपके क्लासपाथ पर है। – JamesB
उत्तर देने के लिए धन्यवाद। मेरा सवाल बेवकूफ लग सकता है लेकिन मैं अपने क्लासपाथ को कैसे देखूं? –
ग्रहण में, अपनी प्रोजेक्ट के साथ, Ctrl + Shift + T दबाएं और कक्षा का नाम टाइप करना प्रारंभ करें। यदि यह सूची में प्रकट नहीं होता है, तो आप जानते हैं कि यह क्लासपाथ पर नहीं है। – JamesB