2012-12-02 74 views
0

當我使用條件執行操作時,出現以下錯誤。請幫助。Grails對象不是聲明類的實例

錯誤:

2012-12-02 19:50:43,678 [http-8080-2] ERROR property.BasicPropertyAccessor - IllegalArgumentException in class: indiaweatherstation.WeatherStation, getter method of property: id 
2012-12-02 19:50:43,683 [http-8080-2] ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [GET] /IndiaWeatherStation/ 
Stacktrace follows: 
    java.lang.IllegalArgumentException: object is not an instance of declaring class 
     at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1163) 
     at indiaweatherstation.CrawlerController$_closure1_closure3.doCall(CrawlerController.groovy:140) 
     at indiaweatherstation.CrawlerController$_closure1.doCall(CrawlerController.groovy:19) 
     at indiaweatherstation.CrawlerController$_closure1.doCall(CrawlerController.groovy) 
     at java.lang.Thread.run(Thread.java:662) 

搜索:

def awsdata = AWSData.withCriteria { 

         eq("station", station) 
        and { 
        eq("day",dayObject) 
        } 
        } 

域:

class AWSData { 

    static hasOne =[station:WeatherStation, day:Day, slp:SLP, 
     mslp:MSLP, rain:Rainfall, tempreature:Tempreature, 
     point:DewPoint, windSpeed:WindSpeed, 
     windDir:WindDirection, ptend:PTEND, sshm:SSHM] 

    int id 
    String tmax 
    String tmin 
    static constraints = { 
     station (blank:true, nullable:true) 
     day  (blank:true, nullable:true) 
     slp  (blank:true, nullable:true) 
     mslp (blank:true, nullable:true) 
     rain (blank:true, nullable:true) 
     tempreature (blank:true, nullable:true) 
     point (blank:true, nullable:true) 
     windSpeed (blank:true, nullable:true) 
     windDir (blank:true, nullable:true) 
     ptend (blank:true, nullable:true) 
     sshm (blank:true, nullable:true) 
     tmax (blank:true, nullable:true) 
     tmin (blank:true, nullable:true) 


    } 
} 

class WeatherStation { 

    static hasOne= [district:District] 
    static hasMany = [AWSData:AWSData, ARGData:ARGData, 
     HWSRData:HWSRData, radiationData:RadiationData] 
    int id 
    String name 
    String lat 
    String lng 

    static constraints = { 

     AWSData (blank:true, nullable:true) 
     ARGData (blank:true, nullable:true) 
     HWSRData (blank:true, nullable:true) 
     radiationData (blank:true, nullable:true) 
    } 
} 

回答

0

的原因是我期待一個元素所以應該用控制器所造成的異常[indiaweatherstation.CrawlerController]

def awsdata = AWSData.createCriteria().get { 
        and { 
         eq("station", station) 
         eq("day", dayObject) 
        } 
       } 
0

應該不是你的eq語句都爲and裏面?

def awsdata = AWSData.withCriteria { 
    and { 
    eq("station", station) 
    eq("day", dayObject) 
    } 
} 
+0

還是同樣的錯誤執行的動作[指數]:發生拋出:IllegalArgumentException調用indiaweatherstation的吸氣劑。 WeatherStation.id – user903772

+1

@ user903772只是想知道,爲什麼你定義一個'id'字段爲'int'? Grails應該自動提供一個ID ... –

+0

如果你確實定義了id,它需要很長時間不是int。 – erturne

相關問題