2012-04-24 4 views
5

私はエンティティマネージャは、(メソッドgetCriteriaBuilderを持っていない)

javax.persistence.criteria.CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); 
を使用するとき、私は、Oracle9iデータベースに取り組んで自分のアプリケーションでJPA2.0を導入していると私は、図書館のEclipseLink(JPA2.0)を追加し、エンティティクラスを作成しましたが、私は次のエラー

がシンボル シンボル見つけることができません取得

:メソッド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を使用している...誰が助けることはできますか?

+1

persistence-1.0.jarという名前のjarファイルを見つけてクラスパスから削除し、それをpersistence-2.0.jarなどと置き換えてください。それはすべて –

+1

私はそれが巨大なJasperLib ejb3-persistence.jarで見つかった、私はライブラリ全体を削除し、それは働いた...ありがとう。 – Questionmark

+0

ニース。今あなたはそれを答えとして書いてその答えを受け入れるべきです。 –

答えて

5

プロジェクトに含まれるすべてのライブラリを検索し、必要なもの以外のpersistence.xmlを含むライブラリを削除します。それから、もう一度やり直してください。

0

あなたのクラスパスにejb3-persistence.jarがあります。

エンティティマネージャにはこのメソッドがありません。

0

おそらく

import javax.persistence.criteria.*; 

が見つかりませんか?

3

用途:

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

そしてません:Eclipseで

<dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
2

  • プロジェクト - >プロパティ - > Javaビルド・パス - >設定はビルドパス - >ライブラリ
  • javax/persistenteへの参照を削除してください
  • EntityManagerFactoryであなたのsourceDAO.javaプレス F3

    、何を見て:

  • は/ バージョン確認する方法

/.jar-JPA-2.0-API-を休止状態への参照を挿入します。 jar eclipse open。