当前位置: 首页 > 知识库问答 >
问题:

按id选择行

祁俊拔
2023-03-14

通过id选择一行应该是一件简单的事情,但我在如何将其映射到对象时遇到了一些麻烦。

我发现这个问题是寻找同样的东西,但给出的答案对我不起作用。

目前我有这是工作,但它似乎没有那么优雅,因为它应该。

def getSingle(id: Long):Option[Category] = withSession{implicit session =>
 (for{cat <- Category if cat.id === id} yield cat ).list.headOption
 //remove the .list.headOption and the function will return a WrappingQuery
}

我觉得获取一个列表,然后使用headoption是很大的,而且没有必要。我一定是漏掉了什么。

case class Category(
  id: Long = 0L,
  name: String
)
object Category extends Table[Category]("categories"){

  def name = column[String]("name", O.NotNull)
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)

  def * = id ~ name <> (Category.apply _, Category.unapply _)

  ...
}

共有1个答案

郎意
2023-03-14

您可以这样做:

def getSingle(id: Long):Option[Category] = withSession{implicit session =>
 Query(Category).where(_.id === id).firstOption 
}

如果您经常使用此查询,那么您应该考虑querytemplate:

val byId=t.createfinderby(t=>t.id)

 类似资料:
  • 我有一个工作数据表,可以列出餐馆的对象。我想删除/编辑选定的,但当我选择一个以下异常显示: 这是桌子: 现在所有ID都显示在表中,但在选择时会显示异常。我试着按照这个例子做每件事。但它们甚至没有rowKey属性。 如果相关的话,这是豆子。 } Primefaces:5.3 JSF:2.2

  • id选择器用于为带有特定 id 的 HTML 元素指定样式。id选择器,是选择器前面加一个井号(#)定义的选择器。 id 选择器可以应用于任何HTML元素,浏览器会在文档中寻找具有指定 id 的元素,为该元素应用样式。id 由用户自定义。如: #intro { font-weight: bold; } <p id="intro">本段落的文本将显示为粗体。</p> 这个p元素应用了id = "in

  • 问题内容: 我正在使用Informix(版本7.32)数据库。在一项操作中,我创建了一个临时表,其中包含常规表的ID和一个串行列(因此,我将从常规表中获得的所有ID进行连续编号)。但是我想从ID排序的常规表中插入信息,例如: 但这会产生语法错误(由于ORDER BY) 有什么方法可以订购信息,然后将其插入到tempTable中? 更新:我要这样做的原因是因为常规表中有大约10,000个项目,并且在

  • 我有ES索引,其中包含以下格式的文档,这些文档使用Fluentd解析器从日志中解析,并在ES中索引。记录格式: {"id":"id1","field 1":"f1_val","消息":"XXXX","时间":"XXXX"} {"id":"id1","field 2":"f2_val","消息":"XXXX","时间":"XXXX"} {"id":"id1","field 3":"f3_val","

  • 是否有任何方法可以在数据框中按索引(即整数)选择行,按列名选择列? 我尝试使用loc,但它返回一个错误,我知道iloc只适用于索引。 这是数据帧df的第一行。我愿意选择第一行,名为“Volume”的列,并尝试使用df.loc[0,'Volume']

  • 问题内容: 从下面的数据中,我需要使用SQL Server 2005为每个链接ID选择最接近指定日期的记录: 因此,使用01/10/2010选择它们应返回: 我知道这是有可能的,但似乎无法绕开我的头脑(必须太接近一天的结束了:P)如果有人可以帮助或朝正确的方向轻轻推一下,将不胜感激! 编辑: 另外我也遇到了这个sql以获取最接近的日期: 但无法弄清楚如何正确地整合到查询中… 谢谢 问题答案: 你可