我正在开发一个独立的应用程序,从我的 ide(intellij 想法)启动它时它工作正常,但是在创建一个 uberjar 并从它启动应用程序之后 javax.persistence.spi.PersistenceProvider 被抛出说“没有名为 testPU 的 EntityManager 的持久性提供程序”
这是我的 persistence.xml,它位于 meta-inf 目录下:
<persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>test.model.Configuration</class> <properties> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.connection.password" value="root"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/> <property name="hibernate.c3p0.timeout" value="300"/> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit>
这是我创建实体管理器工厂的方式:
emf = Persistence.createEntityManagerFactory("testPU");
我使用 maven 并尝试了默认配置的组装插件,我没有太多组装 jar 的经验,我不知道我是否遗漏了什么,所以如果你有任何想法,我很高兴听到他们