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が正しく起動しなくてもストレージまたは大きなテキストフィールドを使用できます。
私が試してみました:
タイプを
textinmappingsに設定しますが、これは機能しないようです。contentOracleは、フィールドがタイプであると予想することについて不平を言い、SQLServerはこれらの状況でlongタイプを望んでいます。textに設定する
typeとclob、スキーマ検証に合格しますが、フィールドを文字列値として設定できなくなります-GORMはタイプのデータを想定していますCLOB。
これを機能させるには、データベース定義とGORMをどのように構成する必要がありますか?