Я использую scala
, play
, sclick
; и postgres
. Я сделал таблицу с именем order
&, она содержит поле с именем created
в формате timestamp с зоной. Теперь я хотел бы найти на order
на основе created
с параметрами year
& month
следующим образом: -Как фильтровать по дате в Play-SLICK, который сохраняется как Мгновенный?
SELECT * FROM "order"
WHERE created::text LIKE '2016-07%';
Этот запрос отлично работает в Postgres.
Скала код, который я написал для Order
является: -
case class Order(id: Option[Int],
customerId: Int,
amount: Double,
created: Option[Instant],
updated: Option[Instant]) extends GenericEntity {
def this(customerId: Int,
amount: Double,) = this(None, customerId, amount, None, None)
}
class OrderTable(tag: Tag) extends GenericTable[Order](tag, "order") {
override def id = column[Option[Int]]("id", O.PrimaryKey, O.AutoInc)
def customerId = column[Int]("customer_id")
def amount = column[Dount]("amount")
def customer = foreignKey("fk_order_customer", customerId, Customers.table)(_.id.getOrElse(1), onUpdate = ForeignKeyAction.Restrict, onDelete = ForeignKeyAction.Cascade)
def * = (id, customerId, amount, created, updated) <> ((Order.apply _).tupled, Order.unapply)
}
object Orders extends GenericService[Order, OrderTable] {
override val table = TableQuery[OrderTable]
override def copyEntityFields(entity: Order, id: Option[Int], created: Option[Instant], updated: Option[Instant]): Order = {
entity.copy(id = id, created = created, updated = updated)
}
def getMonthlyOrder(year:Int, month: Int) = {
// execute LIKE query for the following query
// SELECT * FROM "order"
// WHERE created::text LIKE '2016-07%';
}
}
Где GenericEntity
определяет id
, created
, updated
.
Так что код я должен написать для getMonthlyOrder
функции с year
и month
?.
ли вы попробовать https://github.com/tminglei/ пятно-страничный? – OlivierBlanvillain