Cri*_*riu 11 postgresql scala slick
我使用的是光滑的斯卡拉项目来查询一些表.
//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 _)
}
Run Code Online (Sandbox Code Playgroud)
如果我使用这个表的任何查询它不起作用(它说它找不到我的表)所以我更进一步打印出查询,如:
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)
}
Run Code Online (Sandbox Code Playgroud)
我注意到schema.table的名称出现在,""所以语句是:
select x2."id", x2."street", x2."number", x2."zipcode", x2."country"
from "assetxs.address" x2
Run Code Online (Sandbox Code Playgroud)
这当然不起作用(我试图在PostgreSQL工具中运行它,我需要""从表名中删除,以使其工作.
""在使用表名时,是否可以告诉我在任何查询中是否有任何光滑的选项?
最后我能够解决这个问题.
我只指定表名:
object Addresses extends Table[Address]("address")
并且在搜索时更改我的postgresql conf以包含我的模式(看起来光滑public只在模式上查找):
search_path = '"$user",assetxs,public'
现在它的工作原理.
您已将架构放入表名中。包含点字符的(带引号的)表名在 SQL 中是有效的,但这不是您在这里想要的。您必须单独指定架构:
object Addresses extends Table[Address](Some("assetxs"), "address")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5398 次 |
| 最近记录: |