0

シリアライズ可能なドメインで検索可能なプラグインを使いたい。

問題は、次のコードを追加するとコンパイルされないことです。

class Product は Serializable を実装します {

静的トランジェント=['検索可能']

静的検索可能 = true

この検索可能なプラグインがどのように機能するかわかりません。さらに、ドメイン Product に hasMany と belongsTo の関係もあります。その他もシリアライズ可能なドメイン

このドメインを検索可能にする適切な方法を教えてください。

4

1 に答える 1

0

まず第一に、トランジェントの定義は必要ありません。始めるために必要なのはこれだけです。

    static searchable = true

「http://localhost:8080/YOUR-APP-NAME-HERE/searchable」にアクセスしてテストできます。実際に製品を追加した場合は、その URL を使用するだけで、ドメイン内の単純なフィールド (たとえば String productName フィールドなど) の 1 つを検索できます。

動作していることを確認したら、フォームに検索フィールドを配置し、いくつかのカスタム メソッドを Product コントローラーに追加して、検索機能を使用できます。

    //search form
    <form controller="product" action="searchForProducts" >
       <g:textField name="query" />
       <input type="submit" value="search" />
    </form>

    //ProductController
    def searchForProducts = {
      if(params.query) {
        def products = Product.search(params.query).results
        return [productInstanceList: products]
      }
    }

hasMany 参照が検索可能である限り、それらを検索に含めることができるはずです。私はまだこれを行う必要がなかったので、詳細については肯定的ではありません.

于 2012-03-29T22:08:51.950 に答える