2

Hibernateを使用して小さなデスクトッププロジェクトを作成し、そこでエンタープライズパターンがどのように適用されるかを理解しました。

アノテーションを使用していて、セッションファクトリをラップするクラスを作成しました

public class Hibernation {

    private static final SessionFactory sessionFactory;

    static{
        try{
            //sesionFactory = new org.hibernate.cfg.Configuration().configure().buildSessionFactory();
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        }
        catch(Throwable e){
            throw new ExceptionInInitializerError(e);
        }
    }

    public static Session getSession(){
        return sessionFactory.openSession();
    }

}

ただし、実行しようとすると、次のエラーが発生します。

原因:java.lang.ClassNotFoundException:javax.persistence.ElementCollection

私のクラスパスのjarファイルにはそのクラスが含まれていないようです

hibernate3.jar
jpa.jar
log4j-1.2.15.jar
persistence-api-1.0.jar
slf4j-log4j12-1.0.1.jar

そのクラスを探しましたが、どこからダウンロードできるかわかりません。不足しているjarファイルはありますか?javaee.jarの内部を調べました。ここには、javax.persistence。***のクラスがたくさんありますが、そこにもありません。

前もって感謝します。

4

3 に答える 3

2

Hibernate 3.5.0ベータ2をテストする場合は、1.2.0OSGiバンドルzipからjavax.persistence_2.0_preview.jarを取得しないでください。完全ではありません。たとえば、クラスjavax.persistence.criteria.CriteriaBuilderがありません。

次のjarファイルを実際に使用してください:http://repository.jboss.org/maven2/org/hibernate/java-persistence/jpa-api/2.0-cr-1/jpa-api-2.0-cr-1.jar

通常、このリポジトリ(repository.jboss.org/maven2/org/hibernate/)からすべてのhiberante3hrdパーティjarを取り出すことをお勧めします。

GDに関して

于 2009-11-26T10:22:14.093 に答える
0

私は今朝同じ問題を抱えていましたが、最終的にこの質問で解決策を見つけました。

EclipseLinkJPA2.0プレビューの実装はここからダウンロードできます。

1.2.0 OSGiバンドルzipをダウンロードしてから、javax.persistence_2.0_preview.jarファイルを抽出しました。これは、Hibernate3.5.0ベータ2でうまくいくようです。

于 2009-11-23T12:43:33.877 に答える
0

ejb3-persistence-3.3.2.Beta1.jarクラスパスに(または必要に応じて別のバージョンを)入れて、他のJPAjarを削除してみてください。

于 2009-11-26T10:30:44.153 に答える