2013-01-05 54 views
0

我很困惑以下的JDBC错误。Scala玩JDBC问题

[JdbcSQLException:Column“HASH”not found; SQL语句:插入 HashToUrl(哈希,网址)值(哈希,网址)[42122-158]

1.SQL

# Tasks schema 

# --- !Ups 

CREATE TABLE HashToUrl (
    Hash integer, 
    Url varchar(255) 
); 

# --- !Downs 

DROP TABLE HashToUrl; 

是我的INSERT语句不好?

模型/ Task.scala

def create(hash: Int, url:String) { 
    DB.withConnection { implicit c => 
     SQL("insert into HashToUrl (hash, url) values ({hash, url})") 
     .executeUpdate() 
    } 
} 
+1

也许小写/大写的问题? –

回答

0

我不使用ANORM,但我不认为它会自动绑定数据参数。

SQL("insert into HashToUrl (hash, url) values ({hash, url})") 
    .on("hash" -> hash, "url" -> url) 
    .executeUpdate() 

(我不认为这是你的当前错误,请检查像说尼科字符大小写)

0

您正在使用的数据库?例如,PostgreSQL区分大小写。如果是这样,你应该在SQL中指定'hash'而不是'Hash'。

SQL("insert into HashToUrl (Hash, Url) values ({hash, url})")... 
0
SQL("insert into HashToUrl (hash, url) values ({hash, url})") 
    .executeUpdate() 

应该

SQL("insert into HashToUrl (hash, url) values ({hash, url})").on('hash -> hash, 'url-> url).executeUpdate()