scala – 为什么我不能在光滑的查询中使用Options
发布时间:2020-12-16 18:53:48 所属栏目:安全 来源:网络整理
导读:为了节省我必须创建这么多方法,我尝试将Option’s传递给我的方法,然后检查是否定义了Option,如果是,则应用过滤器. def getUsers(locationId: Option[Int],companyId: Int,salary: Option[Int]): List[User] = { val query = for { u - users if u.companyId
为了节省我必须创建这么多方法,我尝试将Option’s传递给我的方法,然后检查是否定义了Option,如果是,则应用过滤器.
def getUsers(locationId: Option[Int],companyId: Int,salary: Option[Int]): List[User] = { val query = for { u <- users if u.companyId === companyId && (locationId.isDefined && u.locationId === locationId.get) && (salary.isDefined && u.salary >= salary.get) } query.list() } 我收到错误说: polymorphic expression cannot be instantiated to expected type; IntelliJ errors are expected Boolean actual Column[Boolean]. 这种类型的条款在光滑的查询中是不可能的,或者我只是做错了? 解决方法
我无法告诉你为什么但这会为我编译:
def getUsers(locationId: Option[Int],salary: Option[Int]): List[User] = { val query = for { u <- users if u.companyId === companyId && locationId.isDefined && u.locationId === locationId.get && salary.isDefined && u.salary >= salary.get } yield(u) query.list() } 请注意,没有括号,您必须产生一些东西,否则查询的返回类型将是Unit. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |