2012-07-15 19 views
2

我對Scala相當陌生,目前對我們的MySQL數據庫使用名爲Squeryl的ORM。錯誤「java.util.Date不採用參數」在Squeryl的「子句」中

我想要做的是查找時間範圍內的複數記錄。 例如,在普通的SQL,我想這會是這樣的:

SELECT * FROM records WHERE updated_at >= ? AND updated_at < ? 

但是,我的Scala代碼爲以下實現類似的行爲,給了我一個錯誤說「java.util.Date不帶參數「在左括號 」從(記錄)「

def getRecordsBetween(from:java.util.Date, til:java.util.Date):List[Record] 
     transaction { 
     from(records)(record => 
      where(
      record.updatedAt gte from and 
      record.updatedAt lt til 
     ) 
      select(record) 
     ).toList 
     } 
    } 

(其中val記錄= tableRecord

我在做什麼錯在這裏?非常感謝提前。

+0

只是一個猜測,但你是否嘗試用括號括住比較,即「where((record.updatedAt gte from)和(record.updatedAt lt til))」? – 2012-07-15 12:56:06

回答

3

個方法參數和方法,在斯卡拉相同的命名空間,所以你from方法參數是您帶入範圍與類似下面的線PrimitiveTypeMode(或CustomTypeMode)對象的「陰影」的from方法:

import org.squeryl.PrimitiveTypeMode._ 

只需將參數名稱更改爲fromDatestart或其他任何內容,您應該沒問題。

+0

謝謝你指出這一點!所以這是我的var/val命名問題,而不是Squeryl的。不知道爲什麼我沒有想到... * facepalm * – Hongweng 2012-07-18 04:59:38

相關問題