7

我在使用 Oracle9i 数据库的应用程序中引入 JPA2.0,我添加了库 EclipseLink(JPA2.0) 并创建了实体类,但是当我使用

javax.persistence.criteria.CriteriaQuery cq = em.getCriteriaBuilder().createQuery();

我收到以下错误

找不到符号符号:方法 getCriteriaBuilder() 位置:接口 javax.persistence.EntityManager

我的 web.xml 是 2.4 版,这是我的 persistence.xml

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
   <persistence-unit name="MiraclinPU" transaction-type="JTA">
    <jta-data-source>jdbc/Miraclin</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
   </persistence-unit>
</persistence>

看起来该应用程序正在使用 JPA1.0,正如我在论坛上看到的那样......有人可以帮忙吗?

4

5 回答 5

5

采用:

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>

并不是:

    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
    </dependency>
于 2013-10-15T20:33:58.663 回答
4

在项目中包含的所有库中搜索,并删除包含 persistence.xml 的库,您需要的除外。然后再次重新包含它们。

于 2012-04-26T10:37:36.750 回答
2

在日食中:

  • 项目 -> 属性 -> Java 构建路径 -> 配置构建路径 -> 库
  • 删除对 j​​avax/persistente 的引用
  • 插入对 hibernate-jpa-2.0-api-/版本/.jar的引用

如何验证:

在你的 sourceDAO.javaF3中按下 EntityManagerFactory 并查看 .jar eclipse 打开的内容。

于 2014-01-14T16:11:47.873 回答
0

失踪

import javax.persistence.criteria.*;

可能吗?

于 2013-06-02T10:47:16.657 回答
0

由于 org.hibernate.orm神器被移动到hibernate-core

我从以下位置删除了这个pom.xml

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.9.Final</version>
</dependency>

并添加了这个:

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.9.Final</version>
</dependency>

这样就解决了cannot find symbol getCriteriaBuilder()问题。

于 2019-12-07T07:56:49.037 回答