2011-11-23 7 views
3

私はJPAを使い始めました。なぜ、クラスに注釈を付ける必要があるのか​​という質問が@Entityであります。私がそれを行うと考えることができる唯一の理由は、自動生成ツールがデータベース内の対応するテーブルを作成したいと望むなら、それがエンティティであることが分かるということでした。@EntityでPOJOに注釈を付ける必要がある理由

public class Book { 
    //Fields 
} 

@Entity 
public class Book { 
    //Fields 
} 

私はEntityManagerを使用などを保持しようとする場合は、最初のコード・スニペットは、例外がスローされます知っている....しかし、私たちが最初に@Entityを追加しますなぜ私が疑問に思います場所。

答えて

3

JPAの実装では、どのクラスを永続化/永続化するかを(JPA仕様に従って)知る必要があります。しかし、何か注釈を付ける必要はありません。永続性を定義するためにorm.xmlを使用できます。

3

れるJava Persistence APIからFAQ:

れるJava Persistence APIは、オブジェクト/リレーショナルマッピングのPOJO永続化APIです。 Javaオブジェクトとリレーショナル・データベース間のマッピングを定義するために、Java言語メタデータ注釈および/またはXML記述子の使用をサポートする完全なオブジェクト/リレーショナル・マッピング仕様が含まれています。

注釈を付けることはすべて、Pojoにメタデータ(設定)を追加することです。異なるアプローチでは、特定のインターフェイスやXML設定を実装することができます。しかし、アノテーションは実際のコードでははるかに近く、Javaコンパイラによってチェックすることができます。

詳しくは、The Java Persistence API - A Simpler Programming Model for Entity Persistenceこちらをご覧ください。

0

@Entity(@Idなど)以外の注釈でPOJOに注釈を付けるので、Johnがこれを尋ねていると思います。問題は、JPA実装がチェックできるかどうかをクラスに注釈を付け、プロジェクト内のすべてのクラスを通過して存在しないメタデータをスキャンしようとする代わりに、残りのマッピングを取得するクラスに移動する場合です。

これは私の考えです。私は正しいかもしれないかもしれません。:-D

関連する問題