Использование пользовательского сопоставления столбцов Id с плагином Searchable

У меня есть класс домена с пользовательским сопоставлением идентификаторов

...
...
String ensemblGeneId
    String ensemblTranscriptId
    String ensemblProteinId
    String proteinSequence
    String topologySequence
    String topologyRatio
    String description
    String geneName

    ..       
    ..                                     
    ..

    static mapping = {
        proteinSequence type:'text'
        topologySequence type:'text'    
        description type:'text' 
        id name:'ensemblProteinId', generator:'assigned'    
    }

у меня проблема с работой с подключаемым плагином

я добавляю следующее к классу

    static searchable = {
    id name:'ensemblProteinId'
    except = ['topologySequence','proteinSequence']

}

Я получаю следующую ошибку после завершения вставки данных

2010-07-06 13:35:08,091 [http-8080-1] ERROR errors.GrailsExceptionResolver  - Id with path [$/Protein/id] for alias [Protein] not found
org.compass.core.engine.SearchEngineException: Id with path [$/Protein/id] for alias [Protein] not found

кажется, что он все еще пытается найти столбец с именем id вместо столбца с именем ensemblProteinId.

должен ли плагин для поиска работать со столбцами пользовательских идентификаторов, если да, то что я делаю не так?

1 ответ

Кажется, существует проблема с пользовательскими идентификаторами доменов и поисковым плагином. В качестве обходного пути вы можете отобразить класс, используя аннотации компаса, задокументированные здесь:

http://grails.org/Searchable+Plugin+-+Mapping+-+Compass+annotations

и здесь:

http://www.compass-project.org/docs/2.1.4/reference/html/core-osem.html

Итак, ваш класс выглядит примерно так:

import org.compass.annotations.*
@Searchable(alias='Test')
...
class Test {
    @SearchableId
    String sampleId

    @SearchableProperty
    String sampleValue

    static mapping = {
        id name:'sampleId', generator: 'assigned'
    }
    ...
}

Я бы также включил отладку в вашем config.groovy, добавив строки

 debug  'grails.app',
        'org.codehaus.groovy.grails.plugins.searchable'

в ваш конфигурационный блок log4j (вам может понадобиться удалить строку 'org.codehaus.groovy.grails.plugins' из блока ошибок!) Это позволит вам увидеть компасные сопоставления, создаваемые плагином.

Джим.

Другие вопросы по тегам