javaEE > Persistence > IntroJPA

  • O/Rマッピング機能を提供
  • Java Persistenceの構成要素
    • Java Persistence API
    • クエリ言語
    • クライテリアAPI
    • O/Rマッピングメタデータ

Entities

  • エンティティは永続的ドメインオブジェクト
    • 典型的にはテーブル->エンティティ,行->インスタンス
  • 永続的状態はエンティティのフィールドで保持される
    • O/Rマッピングアノテーションを使ってエンティティと関連を関係データにマッピングする

Requirements for Entity Classes

  • エンティティには@Entityを付与
  • publicまたはprotectedのデフォルトコンストラクタをもつ
  • クラス、メソッド、永続化フィールドはfinal不可
  • エンティティが値渡しでデタッチされて受け渡される場合はSerializableを実装
  • エンティティはエンティティクラスまたは非エンティティクラスを継承していい
  • 永続化フィールドはprivate,protected,パッケージプライベートで、直接アクセスするのはエンティティ内のメソッドのみ
    • クライアントはエンティティの状態にアクセスするときはアクセッサ、ビジネスメソッドを経由する

Persistent Fields and Properties in Entity Classes

  • エンティティの永続化の状態は、フィールドまたはプロパティとして保持される
  • フィールド、プロパティの型
    • プリミティブ
    • String
    • Serializableな型
    • Enum
    • エンティティ、エンティティのコレクション
    • 組み込みクラス

Persistent Fields

  • O/Rマッピングアノテーションをエンティティのインスタンス変数に付与
  • @Transientまたはtrasientでないフィールドは永続化される

Persistent Properties

  • O/Rマッピングアノテーションをエンティティのgetterに付与
  • @Transientまたはtrasientでないプロパティは永続化される

Using Collections in Entity Fields and Properties

  • フィールドやプロパティで使えるコレクションの型
    • Collection
    • Set
    • List
    • Map
  • 永続フィールドがエンティティ以外のコレクションの場合は@ElementCollectionを付与
    • targetClass属性でコレクション要素の型を指定(ジェネリクス使用時は任意)
    • fetch属性でFetchTypeを指定。 LAZY |EAGER
  • エンティティの要素や関係にMapをつかうことができる
    • キーと値は、Javaの基本的な型、組み込みクラス、エンティティ
    • 値がJavaの基本的な型、組み込みクラスの場合は@ElementCollectionを付与
    • 値がエンティティの場合は、@OneToMany or @ManyToManyを付与
    • 双方向関連の片側にのみMapを付ける
  • MapのキーがJavaの基本的な型の場合で、キーに対してカラムをマッピングするために@MapKeyColumnを付与
    • @MapKeyColumnのname属性はデフォルトでは、<フィールド名-Name>
  • Mapのキーがエンティティの場合、@MapKeyJoinColumnを付与
    • 複数の列をマッピングしたい場合は、@MapKeyJoinColumnsを付与
    • @MapKeyJoinColumn指定がなければ、マッピング列名は<フィールド名-Name>
最終更新:2012年09月27日 08:15
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。