当前位置: 首页 > 知识库问答 >
问题:

jpa,试图从实体创建表,类找不到ExpressionVisitor

艾才良
2023-03-14

因此,当我右键单击项目->JPA工具->从实体创建表时,

我得到以下错误:

线程“main”本地异常堆栈中的异常:异常[EclipseLink-30005](Eclipse Persistence Services-2.6.0.v20140809-296A69F):org.Eclipse.Persistence.exceptions.Persistence.exceptions.persistenceUnitLoadingException异常描述:在使用classloader:org.Eclipse.Persistence.dynamic.dynamicClassloader@6eceb130内部异常内部异常:java.lang.noClassDefounderror:org/Eclipse/Persistence/jpa/jpql/parser/expressionvisitor at org.Eclipse.Persistence.exceptions.persistenceUnitloadingException.exceptionSearchingforPersistenceResources(persistenceUnitloadingException.java:127)at:55)在org.Eclipse.jpt.jpa.eclipselink.core.ddlgen.main.buildEntityManagerFactory(Main.java:94)在org.Eclipse.jpt.jpa.eclipselink.core.ddlgen.main.execute(Main.java:94)在org.Eclipse.jpa.eclipselink.core.ddlgen.main.execute(Main.java:80)在异常描述:PersistenceUnit[my-pu]预部署失败。内部异常:java.lang.noClassDeffounderror:org/Eclipse/Persistence/jpa/jpql/parser/expressionvisitor at org.Eclipse.Persistence.Internal.jpa.EntityManagerSetupimpl.createPredeployFailedPersistenceException(EntityManagerSetupimpl.java:1973)at org.Eclipse.Persistence.Internal.jpa.EntityManagerSetupimpl.java:1964)at EntityManagerFactoryImpl(PersistenceProvider.java:96)...5个原因是:Exception[EclipseLink-28018](Eclipse Persistence Services-2.6.0.v20140809-296A69F):org.Eclipse.Persistence.exceptions.EntityManagerSetupException异常描述:Predeployment of PersistenceUnit[my-pu]失败。内部异常:java.lang.noClassDeffounderror:org/eclipse/persistence/jpa/jpql/parser/expressionvisitor at org.eclipse.persistence.exceptions.entityManagersetupException.predeployfailed(entityManagersetupException.java:231)...9更多原因是:java.lang.noClassDeffounderror:org/eclipse/persistence/jpa/parser/expressionvisitor at process(namedquerymetadata.process(namedquerymetadata.java:192)在org.eclipse.persistence.Internal.jpa.metadata.metadata.processQueries(MetadataProject.java:1630)在org.eclipse.persistence.Internal.jpa.metadata.metadata.addnamedQueries(MetadataProject.java:148)在快车ionVisitor在java.net.urlClassLoader.findClass(urlClassLoader.java:381)在java.lang.classLoader.loadClass(classLoader.java:424)在sun.misc.launcher$appClassLoader.loadClass(launcher.java:331)在java.lang.classLoader.loadClass(classLoader.java:357)...12个以上

Wildfly默认使用hibernate作为JPA提供程序,我确实将其切换到了Eclipselink。

共有1个答案

卫甫
2023-03-14

我将目标库更改为Properties->JPA中的用户定义库。

<persistence-unit name="my-pu" transaction-type="RESOURCE_LOCAL">
    <jta-data-source>java:/forumcsDS</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/forumcs"/>
        <property name="javax.persistence.jdbc.user" value="root"/>
        <property name="javax.persistence.jdbc.password" value="X"/>
        <property name="eclipseLink.ddl-generation" value="drop-and-create-tables"/>
        <property name="eclipseLink.ddl-generation.output-mode" value="database"/>

    </properties>
    </persistence-unit> 
 类似资料:
  • 所以我从JDBC转移到JPA,我从我的schema.sql文件中删除了“创建表”sql语句,所以现在这个文件看起来像这样: 我的实体,成员。课堂上,是这样的: 以下是我得到的例外: 如您所见,它表示找不到表成员。如果我将“createtablemember”sql语句带回模式。sql文件,也不例外 我在Eclipse上使用Spring Boot。 谢谢!

  • Java类可以很容易地转换成实体。 对于实体转换,基本要求是 - 无参数构造函数 注解 在这里,我们将学习如何通过示例,学习将常规Java类转换为实体类 - 简单的一个学生类(Student),代码如下 - 上面的类是一个常规的java类,有三个属性: , 和 。要将此类转换为实体,请在此类中添加和注解。 - 这是一个标记注释,表明这个类是一个实体。这个注释必须放在类名称上。 - 此注释位于持有持

  • 问题内容: 我的JPA / Hibernate应用程序中有几个映射的对象。在网络上,我收到的数据包代表这些对象的更新,或者实际上可能完全代表新的对象。 我想写一个像 如果数据库中存在一个带有pk primaryKey的对象,则该对象将返回所提供类的一个对象,否则将创建该类的新对象,并将其持久化并返回。 接下来,我将使用该对象来更新事务中的所有字段。 在JPA中是否有惯用的方法来执行此操作,还是有更

  • 问题内容: 我的JPA / Hibernate应用程序中有几个映射的对象。在网络上,我收到的数据包代表这些对象的更新,或者实际上可能完全代表新的对象。 我想写一个像 如果数据库中存在一个带有pk primaryKey的对象,则该对象将返回所提供类的一个对象,否则将创建该类的新对象,并将其持久化并返回。 接下来我将要处理的对象是在事务中更新其所有字段。 在JPA中是否有惯用的方法来执行此操作,还是有

  • 问题内容: 我已经使用JPA(实现hibernate)一段时间了,每次我需要创建实体时,我都会遇到与AccessType,不可变属性,equals / hashCode等有关的问题。 因此,我决定尝试找出每个问题的最佳常规做法,并写下来供个人使用。 但是,我不介意让任何人对此发表评论或告诉我我错了。 实体类 实现可序列化 原因: 规范要求您必须这样做,但是某些JPA提供程序没有强制执行此操作。 作

  • 启动程序(启动TomCat)后,模式中没有创建表,但是必须自动创建表“player”。 我检查了Hibernate配置,但找不到问题所在。我尝试将hbm2ddl.auto更改为hibernate.hbm2ddl.auto(也包括创建、创建-删除等),但没有帮助。 如果有什么想法,请告诉我。谢了。 实体类: 存储库类: Hibernate配置: pom.xml的完整项目代码可通过链接:https:/