2012-03-29 61 views
0

我想在可序列化域中使用可搜索插件。我想在可序列化域中使用可搜索插件

現在的問題是,如果我添加此代碼它不編譯:

類產品實現Serializable {

靜態瞬變= [ '搜索']

靜態搜索=真

我不知道這個可搜索的插件如何工作.. 此外,我也有hasMany和b elongsTo域名產品中的關係。 其他人也可序列化域

所以請CUD有人告訴我做這個域名搜索

回答

0

首先你不需要瞬態定義那裏的正確方法。這是所有你需要開始:

static searchable = true 

您可以通過測試的 「http://本地主機:8080/YOUR-APP-NAME HERE /搜索」。如果您實際上添加了任何產品,則可以使用該URL搜索域中的其中一個簡單字段(如說一個字符串productName字段)。

一旦你確信這是工作,你可以把你的表格搜索字段和一些自定義的方法添加到您的產品控制器使用搜索功能:

//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引用只要它們也是可搜索的,您應該能夠將它們包括在搜索中。我還沒有這樣做,所以我對細節不積極。

+0

但是,只要我把行「static searchable = true」,錯誤就會提示出來。「[main] ERROR context.GrailsContextLoader - 執行bootstraps時出錯:com.infusion.util.domain.event.hibernate.InterceptableSessionFactory can not be轉換爲org.hibernate.impl.SessionFactoryImpl「 – nandini 2012-03-30 08:55:22

+0

您正在使用多租戶插件嗎?有幾個與MultiTenant相關的問題,以及來自MultiTenant的包括「Falcone」插件作爲依賴項的可搜索問題。這就是「輸注」參考的來源。看看下面的鏈接:http://grails.1312388.n4.nabble.com/Plugin-Incompatibility-Multi-Tenant-Searchable-td1354534.html – Kelly 2012-04-08 03:42:08

+0

是啊!這是同樣的衝突問題..謝謝你的方式 – nandini 2012-04-11 07:14:04

相關問題