java.lang.Исключение ClassNotFoundException: javax.постоянство.Ошибка TableGenerators: Как ее решить?

#java #hibernate #jpa

#Ява #зимовать #jpa

Вопрос:

Я выполняю динамический веб-проект с использованием JPA в Java 17. У меня есть класс под названием UserEntity. На первой странице у меня есть кнопка регистрации, которая имеет следующую функциональность:

 private void register(HttpServletRequest request, HttpServletResponse response) {  String password = request.getParameter("register-pass");  String repeatPassword = request.getParameter("confirm-register-pass");  if (!password.equals(repeatPassword)) {  request.setAttribute("error", "Password mismatch!");  RequestDispatcher dispatcher = request.getRequestDispatcher("error.jsp");  try {  dispatcher.forward(request, response);  } catch (ServletException e) {  // TODO Auto-generated catch block  e.printStackTrace();  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  } else {  JPAUserRepository repo = new JPAUserRepository();  String username = request.getParameter("register-user");  String email = request.getParameter("register-email");  UserEntity user = new UserEntity(username, password, email);    if(repo.registerUser(user)) {  HttpSession session = request.getSession();  session.setAttribute("user", user);    try {  response.sendRedirect("profile.jsp");  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }else {  }  }  }  

Функция registerUser из репозитория является:

 public boolean registerUser(UserEntity user) {  EntityManager em = getEntityManager();  try {  em.getTransaction().begin();  em.persist(user);  em.getTransaction().commit();  } catch (TransactionalException e) {  em.getTransaction().rollback();  return false;  } finally {  em.close();  }  return true;  }  

Это мое persistence.xml:

 lt;?xml version="1.0" encoding="UTF-8"?gt; lt;persistence version="2.1" 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_1.xsd"gt;  lt;persistence-unit name="MetaVerse" transaction-type="RESOURCE_LOCAL"gt;  lt;providergt;  org.hibernate.jpa.HibernatePersistenceProvider  lt;/providergt;  lt;classgt;uni.fmi.masters.entities.UserEntitylt;/classgt;  lt;classgt;uni.fmi.masters.entities.CommentEntitylt;/classgt;    lt;propertiesgt;  lt;property name="hibernate.archive.autodetection" value="class" /gt;  lt;property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" /gt;  lt;property name="hibernate.connection.driver_class" value="org.h2.Driver" /gt;  lt;property name="hibernate.connection.url" value="jdbc:h2:~/MetaVerseDB"/gt;  lt;property name="hibernate.connection.user" value="sa"/gt;  lt;property name="hibernate.connection.password" value=""/gt;  lt;property name="hibernate.show_sql" value="true"/gt;  lt;property name="hibernate.flushMode" value="FLUSH_AUTO"/gt;  lt;property name="hibernate.hbm2ddl.auto" value="update"/gt;  lt;/propertiesgt;    lt;/persistence-unitgt; lt;/persistencegt;  

Когда я нажимаю «Зарегистрироваться», java.lang.Исключение ClassNotFoundException: javax.постоянство.Возникает ошибка TableGenerators. Я добавил в путь сборки hibernate-jpa-2.1-api-1.0.2.Final.jar. В javax.persistence есть класс TableGenerator. Должны ли это быть табличные генераторы?

введите описание изображения здесь

Как я могу решить эту проблему?