Использование пользовательского сопоставления столбцов 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' из блока ошибок!) Это позволит вам увидеть компасные сопоставления, создаваемые плагином.
Джим.