gpt4 book ai didi

postgresql - 如何使用 Anorm 从 Postgres 获取 'Char' 值

转载 作者:行者123 更新时间:2023-11-29 12:13:14 26 4
gpt4 key购买 nike

我有一个 postgres 表 -

CREATE TABLE "Contest"
(
id serial NOT NULL,
name varchar(100) NOT NULL,
type char(1) NOT NULL,
status char(1) NOT NULL,
...
)

我正在尝试将字段值 typestatus 返回到我的 Play 2.x (Anorm) 应用程序:

 val parseContest = {
get[Pk[Int]]("id") ~
get[String]("name") ~
get[Char]("type") ~
get[Char]("status") map {
case id~name~c_type~status =>
Contest(id, name, c_type, status)
}
}

并得到错误:

could not find implicit value for parameter extractor: anorm.Column[Char]

看起来“Char”不受异常支持。我应该在我的代码中更改什么?使用 get[String]("status") 然后使用 status.head 作为变通方法是好的做法吗?

最佳答案

我认为您可以为您的 char 列编写一个隐式转换器。看起来像这样:

implicit def columnToChar: Column[Char] = {
Column[Char](transformer = {
(value, meta) =>
val MetaDataItem(qualified, nullable, clazz) = meta
value match {
case ch: String => Right(ch.head)
case _ => Left(TypeDoesNotMatch("Cannot convert " + value + " to Char for column " + qualified))
}
})
}

然后确保此转换器在范围内。

我不确定该值是否为字符串,但您可以检查它并进行相应的更正。

关于postgresql - 如何使用 Anorm 从 Postgres 获取 'Char' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com