@IDはJPAで必須ですか?

質問者:Olguta Brache |最終更新日:2020年5月11日
カテゴリ:テクノロジーおよびコンピューティングデータベース
4.7 / 5 (945ビュー。40投票)
この一意の列のセットをJPAのIDとして使用できます。 JPA Idは、データベーステーブルの主キー制約と常に一致する必要はありません。また、主キーや一意性制約も必要ありません。オブジェクトにidがなく、そのテーブルにidがある場合、これは問題ありません。

これに関して、JPAの@IDとは何ですか?

JPAでは、オブジェクトIDは@ Idアノテーションを介して定義され、オブジェクトのテーブルの主キーに対応している必要があります。生成されたID (サロゲートIDとも呼ばれます)は、システムによって生成されたIDです。 JPAでは、@ Idに、@ GeneratedValueアノテーションを介して生成されたシーケンス番号を簡単に割り当てることができます。

また、JPAエンティティで主キーがどのように定義されているかを尋ねる人もいるかもしれません。デフォルトでは、主キーはシーケンシャル64ビット番号(long)であり、データベースに格納されている新しいエンティティオブジェクトごとにObjectDBによって自動的に設定されます。データベース内の最初のエンティティ・オブジェクトの主キーは、第2エンティティオブジェクトの主キーが2、等であり、1であります

また、休止状態ではIDは必須ですか?

はい、 HibernateにIDが必要です。何らかの理由でキーがないレガシーデータベースを扱っている場合、たとえば、 Hibernateでキーをすべての列の複合キーとして定義できます。これは、一意であることが保証されるためです。

主キーなしでHibernateでエンティティを作成できますか?

休止状態ではありません-リレーショナルデータモデルには主キーが必要です。それでは、あなたはtはリレーショナルこと「だVEのは、主キーなしでそれができるので、壊れたデータモデルである」と、その困難は、ORMを使用する理由です。これは、代理キーを定義することで修正できます

32の関連する質問の回答が見つかりました

@GenericGeneratorとは何ですか?

@GeneratedValueアノテーションは、@ Idアノテーションを付ける必要がある列の値が生成されることを示します。 @ GenericGeneratorは、カスタムジェネレーターを示すために使用される休止状態のアノテーションです。これは、Hibernateによって提供されるジェネレーターのクラスまたはショートカットにすることができます。

@IDなしでJPAエンティティを作成できますか?

より正確には、 JPAエンティティにはいくつかのIDが定義されている必要があります。テーブルに一意の列がまったくない場合は、すべての列をIDとして使用できます。あなたのテーブルには、いくつかのIDを持っていますが、あなたの実体がない場合や、それ埋め込みします

@GeneratedValueとは何ですか?

@ GeneratedValueアノテーションは、主キーの生成方法を指定するために使用されます。あなたの例では、アイデンティティ戦略を使用しています。永続性プロバイダーがデータベースID列を使用してエンティティーに主キーを割り当てる必要があることを示します。

JPA仕様とは何ですか?

Java Persistence API( JPA )は、Javaオブジェクト/クラスとリレーショナルデータベース間のデータにアクセス、永続化、および管理するためのJava仕様です。 JPAは、EJB 2 CMP EntityBeans仕様の代わりとしてEJB3.0仕様の一部として定義されました。 JPAには、永続化するデータベースも必要です。

春の@IDとは何ですか?

Spring 3.2のドキュメントから:XMLベースの構成メタデータでは、 id属性やname属性を使用して、Bean識別子を指定します。 id属性を使用すると、 IDを1つだけ指定できます。従来、これらの名前は英数字( 'myBean'、 'fooService'など)ですが、特殊文字を使用する場合もあります。

@IDアノテーションの用途は何ですか?

主キーの値の生成戦略の仕様を提供します。 GeneratedValueアノテーションは、 Idアノテーションと組み合わせて、エンティティまたはマップされたスーパークラスの主キープロパティまたはフィールドに適用できます。

GenerationType IDとは何ですか?

IDENTITY 。このGenerationTypeは、永続性プロバイダーがデータベースID列を使用してエンティティーに主キーを割り当てる必要があることを示します。 IDENTITY列は通常、 SQLServerで使用されます。この特殊なタイプの列は、個別のシーケンスを使用せずに、テーブル自体によって内部的に入力されます

複合主キーとは何ですか?

複合キー、または複合主キーは、テーブルの主キーを指定するために複数の列が使用される場合を指します。このような場合、すべての外部キーには、複合キーのすべての列も含める必要があります複合キー構成する列は、異なるデータ型である可能性があることに注意してください。

Hibernateの@IDとは何ですか?

序章。 Hibernateの識別子は、エンティティの主キーを表します。これは、値が一意であるため、特定のエンティティを識別でき、nullではなく、変更されないことを意味します。

休止状態にはプライマリキーが必要ですか?

Hibernateでは、エンティティテーブルに主キー必要です。

HibernateとJPAの違いは何ですか?

HibernateJPA実装であり、Spring DataJPAJPAデータアクセス抽象化です。 Spring Dataは、GenericDaoカスタム実装のソリューションを提供します。 Hibernateは、Java Persistence APIのリファレンス実装を提供します。これにより、緩い結合の利点を備えたORMツールとして最適な選択肢になります。

@entityアノテーションの用途は何ですか?

@ Entityアノテーションは、クラスがエンティティであり、データベーステーブルにマップされることを指定します。 @Tableアノテーションは、マッピングに使用されるデータベーステーブルの名前を指定します。

Hibernateの@transientとは何ですか?

@ JPAまたはHibernateの一時アノテーションは、フィールドが永続化されないこと、またはデータベースに保存するフィールドを無視することを示すために使用されます。過渡@ javaxの中に存在します。永続性パッケージ。これは、エンティティクラス、マップされたスーパークラス、または埋め込み可能なクラスのプロパティまたはフィールドに注釈を付けるために使用されます。

MapsIdとは何ですか?

@Target(値= {METHOD、FIELD})@Retention(値= RUNTIME)パブリック@interface MapsId。 EmbeddedId主キー、EmbeddedId主キー内の属性、または親エンティティの単純な主キーのマッピングを提供する、ManyToOneまたはOneToOne関係属性を指定します。

Hibernateに埋め込まれたIDとは何ですか?

注釈タイプEmbeddedId
エンティティクラスまたはマップされたスーパークラスの永続フィールドまたはプロパティに適用され、埋め込み可能なクラスである複合主キーを示します。 AttributeOverrideアノテーションを使用して、埋め込み可能クラス内で宣言された列マッピングをオーバーライドできます。

Hibernateアノテーションとは何ですか?

Hibernateアノテーションは、XMLファイルを使用せずにマッピングを定義するための最新の方法です。 XMLマッピングメタデータに加えて、またはXMLマッピングメタデータの代わりに注釈を使用できます。 Hibernate Annotationsは、オブジェクトおよびリレーショナルテーブルマッピングのメタデータを提供するための強力な方法です。

Hibernateの@basicアノテーションとは何ですか?

つまり、フィールドまたはプロパティの@ Basicアノテーションは、それが基本型であり、 Hibernateがその永続性のために標準マッピングを使用する必要があることを示します。これはオプションのアノテーションであることに注意してください。