getCriteriaBuilder()Ljavax/persistence/CriteriaBuilder

getCriteriaBuilder()Ljavax/persistence/CriteriaBuilder,java,spring,hibernate,Java,Spring,Hibernate,我使用的是Hibernate4、Spring3、JSF2.0和WebLogic10.3.6 我在DAO课上有以下内容 CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery<Request> c = cb.createQuery(Request.class); 我没有使用JPA1 JAR,但是我仍然得到这个异常。无法想出如何摆脱此异常。任何帮助都是值得赞赏的 谢谢

我使用的是Hibernate4、Spring3、JSF2.0和WebLogic10.3.6 我在DAO课上有以下内容

        CriteriaBuilder cb = entityManager.getCriteriaBuilder();
        CriteriaQuery<Request> c = cb.createQuery(Request.class);
我没有使用JPA1 JAR,但是我仍然得到这个异常。无法想出如何摆脱此异常。任何帮助都是值得赞赏的

谢谢

pom.xml

<repositories>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
        </repository>
    </repositories>
    <properties>
        <spring.version>3.1.1.RELEASE</spring.version>
    </properties>
    <dependencies>
        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- JSF library -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1.6</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.6</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- Primefaces library -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>flick</artifactId>
            <version>1.0.8</version>
        </dependency>
        <!-- Hibernate library -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.12.1.GA</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <!-- Oracle Java Connector library -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <!-- Log4j library -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.4</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>1.2.0.Final</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgument>-proc:none</compilerArgument>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.bsc.maven</groupId>
                <artifactId>maven-processor-plugin</artifactId>
                <executions>
                    <execution>
                        <id>process</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <configuration>
                            <!-- source output directory -->
                            <outputDirectory>target/metamodel</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

优质回购
PrimeFacesMaven存储库
http://repository.primefaces.org
违约
3.1.1.1发布
org.springframework
弹簧芯
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
弹簧网
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework
春季甲虫
${spring.version}
org.springframework
弹簧试验
${spring.version}
com.sun.faces
JSFAPI
2.1.6
com.sun.faces
jsf impl
2.1.6
javax.servlet
jstl
1.2
org.primefaces
素面
3.4.2
org.primefaces.themes
轻弹
1.0.8
org.hibernate
冬眠核心
4.1.0.1最终版本
javassist
javassist
3.12.1.GA
javax.inject
javax.inject
1.
com.oracle
ojdbc6
11.2.0.3
c3p0
c3p0
0.9.1.2
log4j
log4j
1.2.16
org.testng
testng
6.4
org.hibernate
冬眠
1.2.0.1最终版本
src/main/resources
org.apache.maven.plugins
maven编译器插件
1.6
1.6
-过程:无
org.bsc.maven
maven处理器插件
过程
过程
生成源
目标/元模型

该方法
EntityManager.getCriteriaBuilder
是JPA2(Java EE 6的一部分)的一部分,默认情况下WebLogic 10不提供和/或启用该方法

这里有一个链接,提供可能解决您的问题的说明。如果没有,你需要开始谷歌搜索“WebLogic10JPA2”,看看是否能找到适合你的解决方案

如果这些解决方案都不起作用,那么您最后的办法就是重新设计您的应用程序,只使用JPA1方法。要使用JPA 1,您必须限制自己使用此处定义的类和接口:

[更新]

或者——因为您无论如何都在使用Hibernate,所以不要太依赖JPA类。改用hibernate特定的类。Hibernate从3.x开始就有了标准。您创建的不是EntityManager,而是Hibernate会话工厂。然后你可以做:

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

...

Session session = sessionFactory.openSession();
Criteria crit = session.createCriteria(Person.class);

您的代码现在锁定为使用Hibernate作为持久性提供程序。在我的例子中,我们总是使用Hibernate,所以这不是一个真正的问题。这是一个你必须自己决定的问题。如果您的应用程序能够容忍被锁定在Hibernate中,那么在WebLogic上运行时,这将为您提供所需的功能。

我有一个问题,没有EntityManager.getCriteriaBuilder,我已经在WebLogic上部署了一个小应用程序,并且它工作正常。那么想知道它是如何工作的吗?@Polppan它现在可以工作了,因为你正在使用JPA1。单击答案中的javadoc链接,查看JPA1中的类和方法。请注意,链接中的EntityManager没有getCriteriaBuilder。如果您可以限制自己使用这些方法,您的软件将在WebLogic上运行。我在WebLogic服务器上添加了
@rem Enable JPA 2.0功能,设置了PRE\u CLASSPATH=%BEA\u HOME%\modules\javax.persistence\u 1.0.0.0\u 1-0-2.jar;%BEA_HOME%\modules\com.oracle.jpa2support_1.0.0.0_2-1.jar
commonv.cmd
中,但是问题仍然存在。在JPA1
CriteriaBuilder cb=entityManager.getCriteriaBuilder()中有什么替代方案;CriteriaQuery c=cb.createQuery(Employee.class)
在我转到HibernateAPI之前,我还有一个问题,在我的\wls1036\u dev\modules文件夹中,我有
javax.persistence\u 1.0.0.0\u 1-0-2.jar
javax.persistence\u 1.1.0.0\u 2-0.jar
。如果我使用
javax.persistence\u 1.1.0.0\u 2-0.jar
,那么我在
CriteriaBuilder cb=entityManager.getCriteriaBuilder()处得到空指针异常。如果我使用
javax.persistence\u1.0.0\u1-0-2.jar
,那么最初的问题仍然存在。你知道这是什么原因吗?
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

...

Session session = sessionFactory.openSession();
Criteria crit = session.createCriteria(Person.class);