JPA のエンティティフィールドとしての予約語のマッピング
JPA での SQL の使用は、データベース方言の予約語と競合する可能性があります。この問題に対処するために、一般的な「独自の方言を使用する」という解決策を避けながら、エンティティ フィールドを予約語でマップする方法を検討してみましょう。
Hibernate のアプローチ
Hibernate では予約語をエスケープできますバッククォート (`) 内にあります。 JPA 1.0 の場合、次を使用します。
@Column(name="`open`")
JPA 2.0 以降の場合、構文は次のとおりです。
@Column(name="\"open\"")
References
- [Hibernate Reference]ガイド](https://docs.jboss.org/hibernate/stable/orm/reference/en/html_single/#d0e3171)
- [5.4. SQL 引用符付き識別子](https://docs.jboss.org/hibernate/stable/orm/reference/en-US/html/dialect-options.html#d0e3171)
- [JPA 2.0仕様](https://docs.oracle.com/javaee/7/api/javax/persistence/Column.html#name())
- [2.13 データベースオブジェクトの命名](https://docs .oracle.com/javaee/7/api/javax/persistence/Table.html#name())
追加リソース
- [Hibernate、MySQL、および「Repeat」テーブル](https://stackoverflow.com/questions/18211310/hibernate-mysql-and-table-named-repeat-strange-behavior)
以上がJPA エンティティ フィールドをデータベースの予約語にマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。