Grailsは、数式マッピングパラメータを使用してSQL式からフィールドを生成するための派生プロパティを提供します。
static mapping = {
myfield formula: "field1 + field2"
}
PostgreSQLデータベースで数式パラメータを使用して連結フィールドを作成しようとしています。PostgreSQL 8.4はまだconcat_wsをサポートしていないため、構文は少し奇妙です。
static mapping = {
myfield formula: "array_to_string(array[field1, field2],' ')"
}
DataSource構成でloggingSql=trueで示される生成されたSQLには、いくつかの奇妙な場所に挿入されたテーブルプレフィックスがあります。
select table0_.field1 as field1_19_0_,
table0_.field2 as field2_19_0_,=
array_to_string(table0_.array[field1, table0_.field2], ' ') as formula0_0_
from test_table table0_ where table0_.id=?
テーブルプレフィックスは、配列の前に誤って表示されますが、派生式のfield1の前には表示されません。プレフィックスをエスケープしたり、この動作をより明示的に修正したりする方法はありますか?