SQLServerまたはOracleバックエンドのいずれかに対して実行されるGrailsアプリケーションがあります。ORMとしてGORMを使用しています。
両方のデータベースタイプをサポートする方法で大きなテキストフィールドをマップしたいと思います。私のGrailsドメインクラスには、次のようなものがあります。
class Note {
String content
static constraints = {
content nullable: false, blank: false
}
}
次に、次のようなデータベーステーブルを宣言します。
-- oracle
CREATE TABLE NOTE
(
id NUMBER(19, 0) NOT NULL,
version NUMBER(19, 0) NOT NULL,
content CLOB NOT NULL
);
-- SQL Server
CREATE TABLE NOTE
(
id NUMERIC(19, 0) NOT NULL,
version NUMERIC(19, 0) NOT NULL,
content NVARCHAR(MAX) NOT NULL
);
GORMはvalidate
起動時にモードで実行されており、OracleとSQL Serverのデータ型とGORMマッピングの組み合わせを見つけることができず、GORMが正しく起動しなくてもストレージまたは大きなテキストフィールドを使用できます。
私が試してみました:
タイプを
text
inmappings
に設定しますが、これは機能しないようです。content
Oracleは、フィールドがタイプであると予想することについて不平を言い、SQLServerはこれらの状況でlong
タイプを望んでいます。text
に設定する
type
とclob
、スキーマ検証に合格しますが、フィールドを文字列値として設定できなくなります-GORMはタイプのデータを想定していますCLOB
。
これを機能させるには、データベース定義とGORMをどのように構成する必要がありますか?