【发布时间】:2014-05-29 02:10:25
【问题描述】:
我正在使用 slick 2.0.1(如果需要可以升级),我想从数据库(postgresql)中检索自动递增值。
我已经看到了一些关于 SO 的问题,但它们已经相当老了,我希望有比这个答案建议的更好的方法:Scala & Play! & Slick & PostgreSQL auto increment
def autoInc = name ~ price ~ description returning id
def add(product: Product)(implicit s:Session): Long = {
Products.autoInc.insert(p.name, p.price, p.description)
}
您必须在 autoInc 方法中重新输入模型的字段,这是重复我希望避免的事情。
有没有更好的方法或者我应该这样做?
我选择的方式是让我的模型 poso(普通的旧 scala 对象,例如):
case class Product(.....)
然后我的 dao 类看起来像:
class ProductDao extends ProductDao {
class Products(tag: Tag) extends Table[Product](tag, "products") {
def id = ...
def name = ..
def * = (id, name) <> (Product.tupled, Product.unapply)
}
val products = TableQuery()
}
另外作为旁注,对于 * 方法,我必须输入所有类似的属性还是有更好的方法?
【问题讨论】:
标签: scala playframework slick slick-2.0