В этом проекте я пытаюсь сохранить данные, возвращаемые Yahoo Finance URL API. URL-адрес для доступа: "http://ichart.yahoo.com/table.csv?s=GOOG&a=0&b=1&c=2000&d=0&e=31&f=2010&g=w&ignore=.csv". Я пытаюсь сохранить возвращенные данные в виде строки в моем параметре StockQuote.stockInfo.
Я получаю следующую ошибку при сохранении экземпляра объекта StockQuote:
Error 500: Internal Server Error
URI: /StockScreenerSD/stockQuote/tickerLookup
Class: org.h2.jdbc.JdbcSQLException
Message: NULL not allowed for column "STOCK_QUOTE"; SQL statement: insert into stock_quote (id, version, date_created, stock_info, ticker) values (null, ?, ?, ?, ?) [23502-164]
Around line 26 of grails-app/controllers/org/grails/finance/StockQuoteController.groovy
23:// def url = ("http://download.finance.yahoo.com/d/quotes.csv?s=" + stockQuote.ticker + "&f=xsna2t8pj1a").toURL()
24: def url = ("http://ichart.yahoo.com/table.csv?s=" +stockQuote.ticker+ "&a=0&b=1&c=2000&d=0&e=31&f=2010&g=w&ignore=.csv").toURL()
25: stockQuote.stockInfo = url.text.toString()
26: stockQuote.save()(flush: true)
27: def stockQuoteList = stockQuoteList()
28: render template: 'usedTickers', collection: stockQuoteList, var: 'stockData'
29: }
Мой код контроллера, который пытается выполнить действие сохранения, выглядит следующим образом:
package org.grails.finance
import grails.plugins.springsecurity.Secured
@Secured('IS_AUTHENTICATED_FULLY')
class StockQuoteController {
// def scaffold = true
def index() {
redirect (action:'getTicker')
}
def getTicker() {
def listing = stockQuoteList()
return [stockQuoteList: listing] // this is a map. key=>value
}
def tickerLookup = {
def stockQuote = new StockQuote(ticker: params.ticker)
def url = ("http://ichart.yahoo.com/table.csv?s=" +stockQuote.ticker+ "&a=0&b=1&c=2000&d=0&e=31&f=2010&g=w&ignore=.csv").toURL()
stockQuote.stockInfo = url.text.toString()
stockQuote.save()(flush: true)
def stockQuoteList = stockQuoteList()
render template: 'usedTickers', collection: stockQuoteList, var: 'stockData'
}
private stockQuoteList() {
StockQuote.list()
}
STOCK_QUOTE
в вашем доменном классе в какой-то момент? Мне кажется, об этом говорит ошибка.Message: NULL not allowed for column "STOCK_QUOTE"
- person Kelly   schedule 31.05.2013stockInfo
со столбцом таблицыSTOCK_QUOTE
. - person dmahapatro   schedule 01.06.2013