0

grails プロジェクトで joda time ライブラリを使用しています。検索可能なプラグインをインストールしました。私はいくつかのドメインを持っていますが、今最も重要なのは:

import org.joda.time.DateTime

class Entry {

     static searchable = {
     except = ['id', 'version']
     spellCheck "include"
     tags component: true

     title boost: 2.0
        dateCreated boost: 2.0
     }

 String title
 String content
 DateTime dateCreated
 DateTime lastUpdated

}

しかし、初期化時に次のエラーが発生します。

[Entry.dateCreated] をマップできません。適切な「検索可能なプロパティ」(通常は文字列、日付、数値などの単純な型)、「検索可能な参照」(通常は別のドメイン クラス)、または「検索可能なコンポーネント」(通常はコンポーネントとして定義された別のドメイン クラス) には表示されません。 'embedded' 宣言を使用)。「def」で定義された派生プロパティ (同等のフィールドを持たない getter メソッド) ですか? より具体的な戻り値の型で定義してみてください

私の質問: dateCreated および/または lastUpdated プロパティを grails で検索可能にすることは可能ですか? 可能であれば、どのようにこれを行うことができますか?

ありがとう。


編集

config.groovy でカスタム コンバーターを次のように定義するとします。

マップ compassSettings = [ 'compass.converter. funkyConverter.type':'com.acme.compass.converter.FunkyConverter']

FunkyConverter クラスでは何が定義されているのでしょうか?

4

1 に答える 1

1

バージョン 0.6 の Searchable に付属していたコンパスのバージョン (以前のバージョンの可能性があります) には、org.joda.time.DateTime クラスの (org.compass.core.converter.DefaultConverterLookup クラスの) 特殊なコードが含まれていました。それが機能するかどうかについて直接話すことはできませんが、joda DateTime クラスの Compass に含まれている org.compass.core.converter.extended.DataTimeConverter を自動的に利用しようとするように見えました。

ただし、joda の LocalDate および LocalTime クラスについては、組み込みのサポートはありませんでした。Searchable バージョン 0.6.1 ( http://jira.grails.org/browse/GPSEARCHABLE-28 )に対する最近のバグ修正と、以下に示す Searchable.groovy での registerClass 構成の使用により、私の "It does not appear to Bootstrap.groovy でドメイン オブジェクトがインスタンス化されているときに、アプリケーションの起動時に発生していた適切な「検索可能なプロパティ」...」の問題。

compassSettings = [
    "compass.converter.jodatime.type": "net.streamrecorder.web.converter.LocalTimeConverter",
    "compass.converter.jodatime.registerClass": "org.joda.time.LocalTime"
]

net.streamrecorder.web.converter.LocalTimeConverter は私が作成したものです。org.compass.core.converter.extended.DataTimeConverter をモデルにしました。GPSEARCHABLE-28 チケットから参照されるこの diff には、LocalDate のコンバーターもあります。 -compas.patch ) そしてもちろん、ここで説明されているように、ドメイン クラスのドメイン メンバ変数にコンバータを指定する必要があります: ( http://grails.org/Searchable+Plugin+-+Converters )

于 2011-07-25T16:24:03.117 に答える