私のアプリケーションでは、eclipselinkと基準apiを使用します。
私のデータベースには、「order」という列を持つテーブルがあります。
問題は、条件apiを使用してselectを作成すると、次のSQLが作成されることです。
SELECT id, order, name, phone, uri FROM campus
「order」はSQLのrestrictキーワードであるため、例外がスローされます
条件APIに列名に引用符を付けるように強制するにはどうすればよいですか?
私のアプリケーションでは、eclipselinkと基準apiを使用します。
私のデータベースには、「order」という列を持つテーブルがあります。
問題は、条件apiを使用してselectを作成すると、次のSQLが作成されることです。
SELECT id, order, name, phone, uri FROM campus
「order」はSQLのrestrictキーワードであるため、例外がスローされます
条件APIに列名に引用符を付けるように強制するにはどうすればよいですか?
最も簡単な(そして私見が最善の)方法は、そのようなものに変更orderしcampus_order、SQLキーワードをフィールド識別子として使用しないようにすることです。この方法は通常、問題を引き起こします。
条件APIにはこの問題に対する何らかの回避策があることを知ってうれしいですが、列の名前を変更することをお勧めします。今日は条件APIを使用していますが、明日は別のものを使用します...しかし、1日の終わりに、古き良きSQLが生成され、列名が原因でクエリの1つが機能しないことを最後に考えます。 SQLバージョンの1つのキーワードに等しい。
フィールドの名前を変更する方が簡単なオプションですが、JPAは区切られたフィールドを引用します。区切りとしてマークするには、列を定義するときに引用符を追加するだけです: "\" order\""。