私は OpenJPA を使用しており、orm.xml を使用してマッピングを行っています。列名の長さが特定の文字数を超える特定のケースでは、SQLクエリの生成中にjpqlが列名を最大数の文字として生成します。
以下のようなマッピングがある場合
<entity name="OneOffSystemTemplateVariableValue" class="financing.tools.docgen.models.OneOffSystemTemplateVariableValue">
<table name="modification_variable_values"/>
<attribute-override name="id">
<column name="modification_variable_values_id"/>
</attribute-override>
.....
</attributes>
</entity>
で簡単なクエリを実行するとOneOffSystemTemplateVariableValue
、以下のようにクエリが生成されました
SELECT t0.**MODIFICATION_VARIABLE_VALUES_I**, t0.create_timestamp, t0.create_id, t0.last_update_timestamp, t0.last_update_id, t0.modification_object_id, t0.variable_name, t0.variable_value FROM Administrator.modification_variable_values t0 WHERE t0.one_off_template_id = ?
ここで MODIFICATION_VARIABLE_VALUES_ID
列の場合、列名を MOD_VARIABLE_VALUES_ID に変更すると、クエリがうまく機能します。
そのため、生成されたSQLは完全な列名の長さを取りません。
maxColumnNameLength
アプリケーションのどこにも設定していません。
この問題に直面しないように、列名の長さの値を設定する方法を教えてください。