Имея ниже grails config: Datasource.Метод на классе [] использовался за пределами контроллера приложения Grails
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
}
datasource_staging_oracle {
dbCreate = "none"
url = "jdbc:oracle:thin:@//myoraclehost:1521/DBNAME"
driverClassName = "oracle.jdbc.OracleDriver"
username = "username"
password = "password"
}
}
класс домена:
import org.springframework.integration.Message
class SpringMessage {
static mapping = {
datasource 'staging_oracle'
message type: 'blob', column: 'message_bytes'
createdDate type: Date, column: 'created_date'
}
static constraints = {
}
String messageId
Message<?> message
Date createdDate
}
Внутри контроллера, выборка записей с помощью:
SpringMessage springMessage = SpringMessage.findByMessageId('messsage_id_value')
Выше линии завершается с ошибкой ниже: Метод на классе [com.foo. bar.SpringMessage] использовался вне приложения Grails. Если вы выполняете в контексте теста, используя насмешливый API или загрузочный Grails правильно.
Как это решить? Googling показывает grails "test", связанные с сообщениями. Но это не тестовый код. Выше метод findBy вызывается из контроллера grails. Я нахожусь на grails 2.3.3 и, к сожалению, сейчас не могу обновиться до последних граалей.
UPDATE
контроллер код:
class FooController {
def index() {
foo2()
}
private def foo2() {
SpringMessage springMessage = SpringMessage.findByMessageId('my_message_id') //This line blowsup
if (springMessage) {
println springMessage.createdDate
} else {
println "not found"
}
}
}
I доступ к контроллеру с помощью http://localhost:8080/myapp/foo/index
UPDATE
декларация столбца Blob неверно в моей оригинальный вопрос. Правильный вариант ниже:
class SpringMessage {
static mapping = {
datasource 'staging_oracle'
message type: 'blob', column: 'message_bytes'
createdDate type: Date, column: 'created_date'
}
static constraints = {
}
String messageId
Blob message
Date createdDate
}
Можете ли вы предоставить реализацию контроллера? – saw303
@ saw303 Обновлено сообщение с контрольным фрагментом –
Как вы управляете Grails? – saw303