ホームページ >Java >&#&チュートリアル >JPA エンティティ フィールドを予約されたキーワードでマッピングするにはどうすればよいですか?

JPA エンティティ フィールドを予約されたキーワードでマッピングするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 22:32:11319ブラウズ

How Can I Map JPA Entity Fields with Reserved Keywords?

JPA での予約キーワードによるエンティティ フィールドのマッピング

JPA で名前が予約キーワードであるエンティティ フィールドを直接マッピングできないと、アプリケーション開発、特に作業時に障害が発生する可能性があります。構文規則を厳密に適用する方言を使用します。ただし、JPA プロバイダーとして Hibernate で利用できる簡単な解決策があります。

バッククォートを使用した識別子エスケープの使用

予約されたキーワードをエスケープするには、予約されたキーワードを @ のバッククォートで囲みます。列の注釈。この機能は Hibernate Core から継承され、SQL ダイアレクトに基づいた正しい引用スタイルをサポートします。 SQL Server の場合、これは引用符に括弧を使用することになります。

JPA 1.0 プロバイダーとしての Hibernate の場合:

@Column(name="`open`")

JPA 2.0 の場合:

@Column(name="\"open\"")

これを利用することでこのアプローチでは、Hibernate はテーブル作成時に予約キーワードが適切に引用されていることを保証し、 「open」フィールド。

追加リソース

  • [Hibernate リファレンスガイド](https://docs.jboss.org/hibernate/orm/6.0/) userguide/html_single/)
  • [5.4. SQL 引用符付き識別子](https://docs.jboss.org/hibernate/orm/6.0/userguide/html/identifiers.html#naming-sql-quoted-identifiers)
  • [JPA 2.0 仕様](https ://jcp.org/ja/jsr/detail?id=338)
  • [2.13データベース オブジェクトの命名](https://docs.oracle.com/javaee/7/api/javax/persistence/metamodel/Attribute.html#getName--)

関連する質問

  • [Hibernate、MySQL、および「Repeat」という名前のテーブル - 奇妙な動作](https://stackoverflow.com/questions/56279222/hibernate-mysql-and-table-named-repeat-strange-behaviour)
  • [Hibernate テーブルおよび列](https://stackoverflow.com/questions/24237940/automatic-reserved-word-escaping-for-hibernate-tables-and-columns)

以上がJPA エンティティ フィールドを予約されたキーワードでマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。