我在一個scala項目中使用slick來查詢一些表。與PostgreSQL一起使用時出現問題
//define table
object Addresses extends Table[Address]("assetxs.address") {
def id = column[Int]("id", O.PrimaryKey)
def street = column[String]("street")
def number = column[String]("number")
def zipcode = column[String]("zipcode")
def country = column[String]("country")
def * = id ~ street ~ number ~ zipcode ~ country <> (Address, Address.unapply _)
}
如果我用這個表不工作的任何查詢(它說,它無法找到我的表),所以我還和打印出去的查詢,如:
implicit val session = Database.forURL("jdbc:postgresql://localhost:5432/postgres", driver = "org.postgresql.Driver", user="postgres", password="postgres").createSession()
session.withTransaction{
val query = Query(Addresses)
println("Addresses: " + query.selectStatement)
}
我注意到,該schema.table的名字出現在""
這樣的說法是:
select x2."id", x2."street", x2."number", x2."zipcode", x2."country"
from "assetxs.address" x2
這當然不工作(我試圖在PostgreSQL的工具運行它,我需要刪除""
從表名爲了讓它工作。
請問在使用表名時,是否有任何的查詢選項不包含""
?
你確定這是你遇到的問題?在PostgreSQL中,未加引號的標識符會轉換爲小寫,在您的示例中,刪除引號會導致相同的查詢。 –
@AntsAasma,我確定「assetxs.address」是一個令人頭痛的問題。 –
http://stackoverflow.com/questions/6720626/how-do-i-specify-a-postgresql-schema-in-scalaquery –