好的,首先我是在这里发布问题的新手,所以请放轻松。
我觉得我已经浏览了互联网来解决这个问题,而且我肯定会很慢,因为我无法做到这一点 - 我知道这应该很简单。
我有一堂课:
class Produce extends LongKeyedMapper[Produce] with IdPK {
def getSingleton = Produce
object producetype extends MappedString(this,20)
object name extends MappedString(this,20)
object description extends MappedString(this,255)
}
该对象有一些辅助方法和其他一些我拼凑起来的东西,试图让它工作:
object Produce extends Produce with LongKeyedMetaMapper[Produce] {
private implicit val formats = net.liftweb.json.DefaultFormats
override def fieldOrder = List(producetype, name, description)
def search(str: String): List[Produce] = {
val strLC = str.toLowerCase()
Produce.findAll(By(Produce.producetype, strLC))
}
implicit def toJson(item: Produce): JValue = Extraction.decompose(item)
implicit def toJson(items: List[Produce]): JValue = Extraction.decompose(items)
}
我的休息服务正在做基本的事情,并与此相匹配:
serve( "api" / "item" prefix {
case "search" :: q JsonGet _ =>
(for {
searchString <- q ::: S.params("q")
item <- Produce.search(searchString)
} yield item): JValue
})
所以令我高兴的是,它起作用了,我得到了匹配..并返回 Json,问题是:假设我在数据库中有 3 行具有生产类型:a,如果我用 'a' 调用服务,它会返回:
[{
},{
},{
}]
所以它正在返回,它只是没有序列化任何数据......我已经尝试重载 unapply 方法并试图弄清楚案例类是否可以帮助我 - 但它并没有点击我虚弱的头脑。有什么帮助吗?