AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

機能の互換性

このページでは、 Hibernetes ORM 拡張機能 でサポートされている機能とサポートされていない機能に関する情報を見つけることができます。Hibernate ORM 拡張機能はMongoDBレプリカセットのみをサポートします。サポートされていない機能を使用する場合、 Hibernetes ORM 拡張機能は UnsupportedFeatureException をスローします。

AHA 考えを作成することで、機能のサポートをリクエストできます。ユーザーのリクエストに基づいて、次の機能を優先します。

このセクションは、Hibernate ORM 拡張機能がさまざまなMongoDB機能をサポートしているかどうかを示します。

Hibernate ORM 拡張機能でサポートされているすべてのBSON typesのリストを確認するには、エンティティの作成ガイドのMongoDB BSON Fieldsセクションを参照してください。

MongoDB の機能
一般提供版(GA)のサポート

一括書込み (write)

✓

削除操作

✓

地理空間クエリ

createNativeQuery()サポートされていません。ただし、$geoWithin $nearメソッドは地理空間クエリをサポートしています。 MongoDBクエリ言語ステートメントに または パイプラインステージを含めます。ネイティブ クエリの詳細については、「 ネイティブ データベース クエリの実行 」ガイドを参照してください。

挿入操作

✓

MongoDB Search クエリ

サポートされていません。ただし、createNativeQuery() メソッドは検索クエリをサポートしています。$search MongoDBクエリ言語ステートメントに パイプラインステージを含めます。の例を表示するには、 ネイティブ データベース クエリの実行ガイドの「 MongoDB Search クエリの実行 」セクションを参照してください。

MongoDB ベクトル検索クエリ

createNativeQuery()サポートされていません。ただし、$vectorSearch メソッドはベクトル検索クエリをサポートしています。 MongoDBクエリ言語ステートメントに パイプラインステージを含めます。ネイティブ クエリの詳細については、「 ネイティブ データベース クエリの実行 」ガイドを参照してください。

MQLによるネイティブ クエリ

✓

プロジェクション

部分的にサポートされています。クエリ プロジェクション内での 集計式 はサポートされていないため、プロジェクションにはすべてのエンティティ フィールドを含める必要があります。ターミナルの ステージで
$project_idが指定されていない場合、 Hibernetes ORM 拡張は暗黙的に返すのではなく 、_id を結果から除外します。結果をエンティティにバインドするネイティブ_id クエリは、 を明示的にプロジェクト必要があります。

読み取り操作

✓

アップデート操作

✓

Upsert 操作

StatelessSession部分的にサポートされています。アップサート操作は、 APIを通じてバージョン管理されていないエンティティでサポートされています。@Version で注釈が付けられたフィールドを持つエンティティをサポートしていません。詳細については、 CRUD操作の実行ガイドの 「ドキュメントのアップサート」セクション を参照してください。

MongoDB の機能
一般提供版(GA)のサポート

変更ストリーム

サポートされていません。ただし、 MongoDB Javaドライバーを通じて変更ストリームを使用することはできます。詳細については、 Javaドライバーのドキュメントの「 変更ストリームを開く 」セクションを参照してください。

クライアント側フィールドレベル暗号化(CSFLE)とQueryable Encryption(QE)

サポートされていません。将来のリリースでこの機能を検討しています。ただし、 MongoDB Javaドライバーを構成するときに CSFLE/QE を設定できます。詳細については、 MongoDB Serverマニュアルの CSFLE ドキュメントを参照してください。

GridFS

サポートされていません。ただし、 MongoDB Javaドライバーを通じてGridFS を使用することもできます。詳細については、 Javaドライバーのドキュメントの「GridFSを使用した大容量ファイル ストレージ」 のガイドを参照してください。

時系列データ

サポートされていません。ただし、 MongoDB Javaドライバーを介して時系列コレクションを作成することはできます。詳細については、 Javaドライバーのドキュメントの「 時系列コレクション のガイド 」を参照してください。

スタンドアロンの mongod インスタンス

サポートされていません。すべてのスタンドアロンインスタンスをレプリカセットに変換する ことをお勧めします。詳細については、MongoDB Serverマニュアルのスタンドアロンの自己管理型mongodをレプリカセットに変換するを参照してください。

ビュー

サポートされていません。ただし、 MongoDB Javaドライバーを使用して MongoClientインスタンスを定義できます。次に、MongoDatabaseインスタンスで createView() メソッドを呼び出して新しいビューを作成します。

MongoDB の機能
一般提供版(GA)のサポート

ロック

部分的にサポートされています。楽観的なロックは、@Version で注釈が付けられたフィールドを持つエンティティでサポートされています。 Hibernetes ORM 拡張機能は、アップデートおよび削除ごとに現在のバージョン値をMQLフィルターに追加し、バージョンが一致しなくなるとOptimisticLockException をスローします。詳しくは、「 楽観的なロック機能による更新の競合の防止

」ガイドを参照してください。悲観的なロックをサポートしていません。

トランザクション

✓

MongoDB の機能
一般提供版(GA)のサポート

関連付け

部分的にサポートされています。@OneToOne 、@OneToMany 、@ManyToOne 、@ManyToMany 、@ElementCollection 注釈がサポートされています。@SecondaryTable と@JoinFormula 注釈はサポートされていないため、SessionFactory の起動時にエラーが発生します。

ID の自動生成

部分的にサポートされています。 ObjectId の自動生成がサポートされています。ただし、 および 識別子を手動で設定できます。 注釈はシーケンス形式の生成をサポートしています。これをString int

@GeneratedValueHibernetes ORMhibernate_sequences

java.util.UUID拡張機能@UuidGenerator は@GeneratedValue(strategy = UUID) という名前のカウンターコレクションを使用します。

IDENTITYTABLEBigInteger識別子の自動生成は、BigDecimal アノテーションまたは アノテーションでサポートされています。 および 戦略、 および 識別子、および空白以外の@SequenceGeneratoroptions 要素をサポートしていません。

複合プライマリキー

@EmbeddedId@Embeddable部分的にサポートされています。標準の クラスまたはレコードで、 を使用して複合キーを宣言します。 Hibernetes ORM 拡張機能はキーを_id サブドキュメントとして保存し、その値を生成しません。

@IdClass@Idアノテーション、複数の@Struct 属性、 集計埋め込み可能識別子、非スカラーキー コンポーネント、 による派生 ID をサポートしていません。詳細については、 エンティティの作成ガイドの「@MapsId

複合プライマリキー 」セクションを参照してください。

継承戦略

部分的にサポートされています。単一テーブル継承とマップ済みスーパークラスはサポートされています。JOINED およびTABLE_PER_CLASS 戦略をサポートしていません。詳細については、 「エンティティ継承階層のマッピング」 ガイドを参照してください。

@JdbcTypeCode 注釈

サポート対象外 。

遅延取得

サポート対象外 。

順序

✓

@Table.catalog 要素

サポートされていません。@Table.catalog hibernate.default_catalogMongoDB はクロスデータベース 操作をサポートしていないため、 Hibernetes ORM 拡張機能はブートストラップ時に 要素と$lookup プロパティを拒否します。代わりに、データベースごとに 1SessionFactory つの インスタンスを作成します。

@Table.schema 要素

✓
単一のMongoDBデータベース内のコレクション名のプレフィックスにマップします。

検証

✓

MongoDB の機能
一般提供版(GA)のサポート

上限付きコレクション

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient インスタンスを定義できます。次に、CreateCollectionOptions.capped(true) 呼び出しのパラメータとして を指定して、 Cappedコレクションを作成します。createCollection()

クラスター化されたコレクション

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient clusteredIndexインスタンスを定義できます。次に、 というドキュメントを作成し、 クラスター化インデックスを定義します。このクラスター化されたインデックスは、クラスター化されたコレクションを定義するMongoDatabase.runCommand() メソッドに渡すドキュメントの一部として使用します。

複合インデックス

✓

埋め込みドキュメントインデックス

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient インスタンスを定義できます。次に、ネストされたメソッドMongoCollection.createIndex(Indexes.ascending("field.subfield")) を呼び出します。このメソッドでは、ネストされたキー パスと引用符を使用します。フィールド.subfield>埋め込みドキュメントインデックスを作成します。

地理空間インデックス

サポートされていません。ただし、 MongoDB Javaドライバーを通じて地理空間インデックスを使用することはできます。詳細については、 Javaドライバーのドキュメントの「インデックスガイド」の「地理空間インデックス」セクションを参照してください。

MongoDB Search インデックス

サポートされていません。ただし、 MongoDB Javaドライバーを通じてMongoDB Search インデックスを使用できます。詳細については、 Javaドライバーのガイドの「インデックス ガイド」の「MongoDB Search とベクトル検索インデックスのセクション 」を参照してください。

MongoDB ベクトル検索インデックス

サポートされていません。ただし、 MongoDB Javaドライバーを通じてMongoDB ベクトル検索インデックスを使用できます。詳細については、 Javaドライバーのガイドの「インデックス ガイド」の「MongoDB Search とベクトル検索インデックスのセクション 」を参照してください。

Multikey Indexes

サポートされていません。ただし、 MongoDB Javaドライバーを通じてマルチキー インデックスを使用することはできます。詳細については、 Javaドライバーのガイドの「 インデックス ガイド 」の「 マルチキー インデックス(配列フィールドへのインデックス) 」セクションを参照してください。

部分インデックス

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient インスタンスを定義できます。次に、ネストされたメソッド を呼び出してMongoCollection.createIndex(Indexes.partialFilterExpression()) 部分インデックスを作成します。

スキーマ検証

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient インスタンスを定義できます。次に、collMod メソッドを通じてMongoDatabase.runCommand() コマンドを実行してバリデーターを作成します。

単一フィールド インデックス

✓

Sparse Indexes

サポートされていません。ただし、 MongoDB Javaドライバーを使用してMongoClient インスタンスを定義できます。次に、IndexOptions().sparse(true) MongoCollection.createIndex()メソッドの呼び出しで をパラメータとして指定して スパースインデックスを作成します。

Unique Indexes

✓

モデル作成後の埋め込みモデルインデックスの更新

サポートされていません。ただし、埋め込みモデルインデックスを手動で削除して再作成することはできます。

インデックスの詳細については、「 クエリ最適化のインデックスガイド 」を参照してください。

このセクションは、 Hibernet ORM 拡張機能がさまざまな Hibernet ORM 機能 をサポートしているかどうかを示します。

データ型
一般提供版(GA)のサポート

コレクション タイプ(リスト、セット、マップ、配列)

✓
@ElementCollection とCollectionTable はサポートされていません。ただし、埋め込み構造体のコレクションは、@Embeddable と@Struct で注釈が付けられた埋め込み可能なクラスを通じてサポートされます。

埋め込み可能エンティティ、スカラー型

部分的にサポートされています。java.time.Instant 、java.time.Duration 、java.time.Year 、java.time.ZoneId 、java.time.ZoneOffset 、java.util.TimeZone タイプは、最上位エンティティとネストされたエンティティでサポートされています。

埋め込みエンティティ、バイナリ

✓

埋め込みエンティティ、識別子のタイプ

部分的にサポートされています。エンティティを永続化する前に、エンティティのIDを手動で設定します。

埋め込みエンティティ、 JSON

✓

埋め込みエンティティ、null セマンティクス

✓

最上位エンティティ、バイナリ

✓

最上位エンティティ、識別子のタイプ

✓
エンティティを永続化する前に UUID を手動で割り当てるか、@UuidGenerator アノテーションを使用して UUID を自動生成します。

最上位エンティティ、 JSON

✓

最上位エンティティ、null セマンティクス

✓

最上位エンティティ、スカラー型

✓

最上位エンティティ、一時タイプ

部分的にサポートされています。java.time.Instant 、java.time.Duration 、java.time.Year 、java.time.ZoneId 、java.time.ZoneOffset 、java.util.TimeZone タイプは、最上位エンティティとネストされたエンティティでサポートされています。

三項論理(true、false、または UNKNOWN)

サポートされていません。

Hibernetes ORM 拡張機能ではcom.mongodb.hibernate.semantics.nulls MQLプロパティを設定する必要があります。サポートされている値は のみです。 null 比較は、 Hibernetes ORM 三項ロジックではなく、 MongoDBクエリ言語のセマンティクスに従います。 Hibernetes ORM 拡張機能は、プロパティが設定されていない場合、スタートアップ時に例外をスローします。

一時停止 ORM 機能
一般提供版(GA)のサポート

HQL および JQL クエリ、集計演算子

✓

HQL および JQL クエリ、算術演算子

部分的にサポートされています。+ -*/div-+SELECT句とWHERE 句で 、 、 、 、 演算子、および 1 つの と

をサポートします。オペランドとしての関数呼び出しをサポートしていません。これには、HQL 演算子が含まれます。HQL% 演算子は、ORM がmod() 関数呼び出しに書き換えます。

詳細については、 クエリの指定ガイドの「 計算式の使用 」セクションを参照してください。

HQL および JQL クエリ、配列演算子

✓

HQL および JQL クエリ、CASE 式

✓
等価性についてCASE 1 つのオペランドをテストするCASE 式と、各WHEN 句で述語を評価する 式をサポートします。 Hibernetes ORM 拡張機能は、単一のWHEN ... THEN 句をMongoDB$cond 演算子に変換し、複数の句を$switch 演算子に変換します。

HQL および JQL クエリ、日時関数

部分的にサポートされています。extract() format()句の日時フィールドで 関数とSELECT 関数をサポートし、それらをMongoDB日付演算子と$dateToString 演算子に変換します。各関数は特定の日時フィールドとパターン コードのセットをサポートします。詳細については、「 クエリでの日時関数の使用 」ガイドを参照してください。

HQL および JQL クエリ、比較演算子

  • >、 、 、 、 、:>= <<==<>計算されたオペランドを含む、サポートされています。詳細については、 クエリの指定ガイドの「 計算式の使用 」セクションを参照してください。

  • EXISTS: EXISTS部分的にサポートされています。単一フィールドの埋め込み配列の要素をフィルタリングしてMongoDB$elemMatch 演算子に変換するEXISTS サブクエリをサポートします。特定の サブクエリをサポートしていません。詳細については、 クエリの指定ガイドの 「EXITS」セクション を参照してください。

  • BETWEEN: $gte$lteサポートされています。 MongoDB 演算子と 演算子に変換します。詳しくは、「 クエリの指定」ガイドの [ BITWEen ] セクションを参照してください。

  • IS NULL IS NOT NULLおよび: サポートされています。明示的に null 値と欠落フィールド、またはそれらの値の否定と一致し、 MongoDB$match 演算子に変換されます。詳しくは、 クエリの指定ガイドの「 IS NULL および IS NULL ではない 」セクションを参照してください。

  • IN NOT INおよび: 部分的にサポートされています。フィールドパスに対してテストされたリテラルまたはパラメータのリストをサポートし、 MongoDB$in 演算子と$nin 演算子に変換します。サブクエリまたは配列値のある式をリストとしてサポートしていません。詳細については、 クエリの指定ガイドの IN セクションと NULL ではないセクションを参照してください。

  • nullとの比較: サポートされています。 Hibernetes ORM 三項ロジックではなく、 MongoDBクエリ言語の null セマンティクスを適用するため、 との比較は明示的にnull null 値と欠落しているフィールドと一致します。詳細については、 クエリの指定ガイドの「 Null とのフィールド値の比較 」セクションを参照してください。

  • 行値述語: 部分的にサポートされています。括弧付きのフィールド= <>INNOT INリスト( など)に対して 、 、 、where (title, year) = (:t, :y) 演算子をサポートし、各述語をコンポーネントごとのMongoDB 比較に変換します。 、 、 、または$eq >>=<<=演算子を使用する行値述語をサポートしていません。詳細については、 クエリの指定ガイドの「 複数のフィールドを一度に比較する 」セクションを参照してください。

  • LIKE: サポートされています。 MongoDB$regex 演算子に変換します。

  • ANYALL、: サポートされていません。createNativeQuery() MongoDB問い合わせ言語のステートメントでは、 メソッドと比較演算子を渡します。ネイティブ クエリの詳細については、「 ネイティブ データベース クエリの実行 」ガイドを参照してください。

HQL および JQL クエリ、要素演算子

✓

HQL および JQL クエリ、評価演算子

サポートされていません。ただし、createNativeQuery() メソッドは評価演算子をサポートしています。MongoDBクエリ言語ステートメントに演算子を含めます。ネイティブクエリの詳細については、ネイティブデータベースクエリの実行ガイドを参照してください。

HQL と JQL のクエリ、GROUP BY 句と HAVING 句

サポートされています。列参照または式でグループ化し、グループ化された結果をHAVING 句でフィルタリングできます。また、GROUP BY のように、式であるselect b.total + 1 from Item as b group by b.total + 1 order by b.total + 1 キーを使用して順序付けすることもできます。アキュムレータ内で、distinct のようにcount(distinct b.total) キーワードを使用できます。

HQL および JQL クエリ、結合

部分的にサポートされています。エンティティを結合するには、 のようにマップされた関連付けを移動するか、from Movie m join m.comments c のようにエンティティに名前を付けてON from Movie m join Comment c on c.date > m.released句を指定します。各結合はMongoDB$lookup と$unwind ステージに変換されます。例については、「 コレクション間でエンティティを結合する」ガイドを参照してください。

  • 内結合と左外部結合: サポートされています。

  • JOIN FETCH 句: サポートされています。

  • 連鎖結合: サポートされています。 2 つ以上のエンティティにまたがって結合できます。

  • 複合キー結合: @ManyToOne@OneToOne@EmbeddedId部分的にサポートされています。ターゲット= ON

    @JoinColumnエンティティが@ManyToMany 複合キーを持つ または の関連付けに参加できます。また、 条件で複合識別子全体を と比較することもできます。このような関連付けに対する アノテーション、識別子全体間の順序付け、複合キーを含む の関連付けはサポートしていません。詳細については、

    コレクション間でのエンティティの結合ガイドの「 複合キー結合 」セクションを参照してください。

  • ON 条件: ONWHERE部分的にサポートされています。 条件では、 句と同じ比較、論理、述語演算子がサポートされます。これには、AND またはOR による複数のフィールド比較と、 範囲 およびON 非等価条件を組み合わせた複合条件が含まれます。 条件は列を比較する必要があります。on m = c.movie のようにエンティティ参照を比較したり、on c.movie.title = 'Blue Jasmine' のように条件内で関連付けを移動したりすることはできません。

  • 右外部結合、全外部結合、クロスクエリ結合、側結合結合、サブクエリ結合: サポートされていません。createNativeQuery() メソッドを使用して、複数のコレクションをクエリする集計操作を実行できます。ネイティブ クエリの詳細については、「 ネイティブ データベース クエリの実行 」ガイドを参照してください。

HQL および JQL クエリ、論理演算子

✓

HQL および JQL クエリ、string 関数

部分的にサポートされています。character_length() length()、 、substring() 、trim() 、upper() 、lower() 、pad() 、lpad() 、rpad() 、concat() 、locate() 、repeat() をサポート関数と|| 連結演算子を使用します。その他の Hibernetes ORM string 関数はサポートされていません。

一時停止 ORM 機能
一般提供版(GA)のサポート

1次レベル キャッシュ

✓

2レベル キャッシュ

✓

このセクションは、 Hibernetes ORM 拡張機能がさまざまな外部フレームワークまたはライブラリをサポートしているかどうかを示します。

フレームワークまたはライブラリ
一般提供版(GA)のサポート

プロセスが起動し、データが優先される

部分的にサポートされています。 Hibernetes ORM 拡張機能は、 MongoDBベースの JPA およびspring Data Java のリポジトリを構成する SPI スターターを提供します。すべての をがサポートすることを保証するものではありません。詳細については、「 SPI と SPI の統合 」セクションを参照してください。