2013-01-05 3 views
0

다음 JDBC 오류로 혼란 스럽습니다.스칼라 플레이 JDBC 문제

[JdbcSQLException : "HASH"열을 찾을 수 없습니다. SQL 문 : HashToUrl에 삽입 (해시, URL) 값 (해시, URL) [42122-158]

1.sql

# Tasks schema 

# --- !Ups 

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

# --- !Downs 

DROP TABLE HashToUrl; 

내 삽입 문이 나쁜가요?

모델/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() 

(I, 그것은 현재의 오류라고 생각 니코 말했듯이 대소 문자를 확인하지 않음)

0

사용중인 데이터베이스? 예를 들어 PostgreSQL은 대소 문자를 구분합니다. 그렇다면 SQL에서 '해시'가 아니라 '해시'를 지정해야합니다.

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() 
관련 문제