Как разрешить javax.persistence.PersistenceException с помощью EntityManager с именем Student_pu_test?JAVA

Программисты JAVA общаются здесь
Anonymous
Как разрешить javax.persistence.PersistenceException с помощью EntityManager с именем Student_pu_test?

Сообщение Anonymous »

Заголовок: «javax.persistence.PersistenceException: нет поставщика сохраняемости для EntityManager 'student_pu_test' в классах StudentRepository и StudentRepositoryTest»
Тело:
Я столкнулся с постоянной проблемой с ошибка javax.persistence.PersistenceException в моем приложении Java. В сообщении об ошибке указано: «Нет поставщика постоянства для EntityManager с именем Student_pu_test», и оно указывает на строку, в которой вызывается Persistence.createEntityManagerFactory(). Несмотря на проверку моей конфигурации persistence.xml, зависимостей и настройки EntityManagerFactory, проблема остается.
У меня есть два класса, вовлеченных в эту проблему: StudentRepository и StudentRepositoryTest. Вот фрагменты соответствующего кода:
Класс StudentRepository:

Код: Выделить всё

package fr.charly.jPATutorial;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class StudentRepository {

private EntityManager entityManager;
private EntityManagerFactory emf;

public StudentRepository() {
this.emf = Persistence.createEntityManagerFactory("student_pu_test");
this.entityManager = this.emf.createEntityManager();
}

public StudentRepository(String pu) {
this.emf = Persistence.createEntityManagerFactory(pu);
this.entityManager = this.emf.createEntityManager();
}

public Student add(Student student) {
entityManager.getTransaction().begin();
entityManager.persist(student);
entityManager.getTransaction().commit();
return student;
}

public Student find(Long id) {
return entityManager.find(Student.class, id);
}

public Student update(Student student) {
Student studentToUpdate = find(student.getId());
entityManager.getTransaction().begin();
studentToUpdate.setFirstName(student.getFirstName());
studentToUpdate.setLastName(student.getLastName());
entityManager.getTransaction().commit();
return studentToUpdate;
}

public void delete(Student student) {
entityManager.getTransaction().begin();
entityManager.remove(student);
entityManager.getTransaction().commit();
}

public void close() {
this.entityManager.close();
this.emf.close();
}
}
Класс StudentRepositoryTest:

Код: Выделить всё

package fr.charly.jPATutorial;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class StudentRepositoryTest {

private static StudentRepository repository;

@BeforeAll
public static void beforeClass() throws Exception {
repository = new StudentRepository("student_pu_test");
}

@AfterAll
public static void afterClass() throws Exception {
if (repository != null) {
repository.close();
}
}

@BeforeEach
public void setUp() throws Exception {
}

@AfterEach
public void tearDown() throws Exception {
}

@Test
public void add() {
Student student = new Student();
student.setLastName("Red");
student.setFirstName("Alan");

repository.add(student);

assertNotNull(student.getId());
assertTrue(student.getId() != null);
}

@Test
public void find() {
Student student = new Student();
student.setLastName("Red");
student.setFirstName("Alan");

repository.add(student);

student = repository.find(student.getId());

assertNotNull(student);
assertNotNull(student.getId());
assertEquals("Red", student.getLastName());
}

@Test
public void update() {
Student student = new Student();
student.setLastName("Red");
student.setFirstName("Alan");

student = repository.add(student);

student.setLastName("Green");
student = repository.update(student);

assertNotNull(student);
assertEquals("Green", student.getLastName());
assertEquals("Alan",  student.getFirstName());
}

@Test
public void delete() {
Student student = new Student();
student.setLastName("Red");
student.setFirstName("Alan");

student = repository.add(student);

repository.delete(student);

student = repository.find(student.getId());

assertNull(student);
}
}
persistence.xml

Код: Выделить всё



org.hibernate.jpa.HibernatePersistenceProvider

fr.charly.jPATutorial.Student















Я пробовал проверять свои конфигурации, искать ошибки в коде и проверять онлайн-ресурсы, но мне пока не удалось решить эту проблему.
Я буду очень признателен за любые идеи, предложения или решения, которые помогут мне устранить неполадки и решить эту постоянную проблему. Заранее благодарим вас за вашу помощь и опыт.

Подробнее здесь: https://stackoverflow.com/questions/785 ... er-named-s

Вернуться в «JAVA»