[解決済み] JPAの@Entityアノテーションの正確な意味は何ですか?
質問
SpringアプリケーションでJPAを勉強しているのですが、以下の点について疑問があります。 エンティティー アノテーションを使用しています。
というわけで、こんな感じのモデルクラスができました。
@Entity
@Table(name= “T_CUSTOMER”)
public class Customer {
@Id
@Column(name=“cust_id”)
private Long id;
@Column(name=“first_name”)
private String firstName;
@Transient
private User currentUser;
...........................
...........................
...........................
}
OK、私は エンティティ アノテーションはクラス・レベルにあり、このクラスのインスタンスであるオブジェクトのフィールドにマッピングすることを意味します。 T_CUSTOMER データベースのテーブルです。
しかし、なぜJPAでは エンティティ アノテーションを使用することはできません。 テーブル アノテーションは、モデルオブジェクトを特定のデータベーステーブルにマッピングするために使用されますか?It have some other meaningbehavior that actually I am missing?
何が足りないのでしょうか?の正確な意味は何ですか? エンティティ のアノテーションを使用してください。
どのように解決するのですか?
@Entity
アノテーションは、クラスがテーブルにマッピングできることを定義します。そして、それは単なるマーカーであり、例えば、次のようなものです。
Serializable
インタフェースになります。
そして、なぜ
@Entity
アノテーションは必須なのでしょうか?それはJPAがどのように設計されているかということです。新しいエンティティを作成するときは、少なくとも次の2つのことを行う必要があります。
-
でアノテーションされた
@Entity
-
id フィールドを作成し、そのフィールドにアノテーションを付けます。
@Id
それ以外は任意です。例えば、テーブル名はエンティティクラス名から派生します(したがって
@Table
アノテーションは省略可能)、テーブルのカラムはエンティティの変数から派生したもの(そのため
@Column
アノテーションは省略可能)、などなど・・・。
JPAは、このAPIを学びたい、使いたいと思う開発者に迅速で簡単なスタートを提供しようとしています。そして、開発者が何かを機能させるためにできるだけ少ないものを設定するオプションを与えることは、このAPIがこの「使いやすく、学びやすい」目標を達成するための方法の1つなのです。そのため
@Entity
アノテーション(
@Id
アノテーション) は、エンティティを作成するために最低限しなければならないことです。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
原因: org.hibernate.exception.SQLGrammarException: ResultSet を抽出できない エラーの理由
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] JPAの@Entityアノテーションの正確な意味は何ですか?
-
[解決済み] JPA EntityManager。なぜmerge()ではなくpersist()を使うのか?
-
[解決済み] Spring-data-jpaを使用してエンティティを更新するにはどうすればよいですか?
-
[解決済み] JPA : ネイティブクエリ結果セットをPOJOクラスコレクションに変換する方法
-
[解決済み] Spring Boot + JPA : 列名アノテーションの無視
-
[解決済み] Spring Data JPAでgetOneとfindOneメソッドを使用する場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン