שגיאת שינה "אין ספק התמדה עבור EntityManager"

1. הקדמה

במדריך זה נראה כיצד לפתור שגיאת שינה נפוצה - "אין ספק התמדה עבור EntityManager". במילים פשוטות, ספק התמדה מתייחס ליישום ה- JPA הספציפי המשמש ביישום שלנו כדי להתמיד באובייקטים למסד הנתונים.

למידע נוסף על JPA ויישומיו, אנו יכולים להתייחס למאמר שלנו על ההבדל בין JPA, Hibernate ו- EclipseLink.

2. מה גורם לשגיאה

נראה את השגיאה מתי היישום לא יודע איזהיש להשתמש בספק התמדה.

זה קורה כאשר ספק ההתמדה לא מוזכר ב- התמדה.קסמל קובץ ולא הוגדר ב PersistenceUnitInfo כיתת יישום.

3. תיקון השגיאה

כדי לתקן שגיאה זו, עלינו פשוט לעשות זאת הגדר את ספק ההתמדה ב- התמדה.קסמל קוֹבֶץ:

org.hibernate.jpa.HibernatePersistenceProvider

או אם אנו משתמשים תרדמת גרסה 4.2 ומעלה:

org.hibernate.ejb.HibernatePersistence

למקרה שיישמנו את PersistenceUnitInfo ממשק ביישום שלנו, עלינו לעקוף גם את

getPersistenceProviderClassName () שיטה:

@Override מחרוזת ציבורית getPersistenceProviderClassName () {להחזיר HibernatePersistenceProvider.class.getName (); }

כדי להבטיח את כל צנצנות השינה הנחוצות, יש להוסיף את ליבת שינה תלות ב pom.xml קוֹבֶץ:

 org.hibernate hibernate-core $ {hibernate.version} 

4. מסקנה

לסיכום, ראינו את הגורמים האפשריים לשגיאת שינה "אין ספק התמדה עבור EntityManager" ודרכים שונות לפתור אותה.

כרגיל, פרויקט ה- Hibernate לדוגמה זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found