gpt4 book ai didi

java - 无法使用 Intellij 配置 JPA

转载 作者:行者123 更新时间:2023-11-28 23:14:16 25 4
gpt4 key购买 nike

我正在尝试配置一个简单的 JPA 项目,但我遇到了困难。

我有一个工作数据源 (MySQL) 和具有多个表的 GlassFish。

我执行了以下步骤(Intellij 生成的所有文件):

  1. 使用 Hibernate Provider 使用 Java EE Persistance 创建新项目。

  2. 导入具有学生表的数据库。

  3. 使用 Intellij IDE 生成实体类。

  4. 从 Maven 导入 Hibernate-entitymanager 库。

  5. 导入 MySQL 连接器。

  6. 尝试运行一个简单的 JPA 程序来创建新行,但我得到一个异常(exception):

    EntityManager 没有名为 persistenceUnit 的持久性提供程序

可能是什么问题?我几乎尝试了这里的每个教程和每个问题,但都没有成功!

请帮助我!

(有时持久性提供程序中的 Hibernate 是红色的)

坚持:

    <?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

<persistence-unit name="NewPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>modules.CourseEntity</class>
<class>modules.StuCouEntity</class>
<class>modules.StudentsEntity</class>
<class>modules.TeacherEntity</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="123456"/>
<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>
</persistence-unit>
</persistence>

主要.java:

import modules.StudentsEntity;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class MainClass
{
public static void main(String[] args)
{
StudentsEntity stu = new StudentsEntity();
stu.setName("David");

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

em.getTransaction().begin();
try
{
em.persist(stu);
em.getTransaction().commit();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
ex.printStackTrace();
em.getTransaction().rollback();
}
finally
{
em.close();
}



}
}

错误:

June 16, 2017 5:47:07 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
June 16, 2017 5:47:07 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.5.Final}
June 16, 2017 5:47:07 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
June 16, 2017 5:47:07 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistenceUnit
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:84)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at MainClass.main(MainClass.java:17)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

最佳答案

你定义了

<persistence-unit name="NewPersistenceUnit">

尝试调用 Persistence.createEntityManagerFactory("persistenceUnit");

NewPersistenceUnit 更改为 persistenceUnit

关于java - 无法使用 Intellij 配置 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com