加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 使用光滑插入和更新数据时丢弃值

发布时间:2020-12-16 18:28:30 所属栏目:安全 来源:网络整理
导读:我正在使用play2. 我在数据库中有多个由数据库管理的字段.我不想创建或更新它们,但是我想在读取值时获取它们. 例如,假设我有 case class MappedDummyTable(id:Int,.. 20其他字段,modified_time:可选[Timestamp]) 它在数据库中映射Dummy. modified_time由数
我正在使用play2.
我在数据库中有多个由数据库管理的字段.我不想创建或更新它们,但是我想在读取值时获取它们.

例如,假设我有

case class MappedDummyTable(id:Int,.. 20其他字段,modified_time:可选[Timestamp])

它在数据库中映射Dummy. modified_time由数据库管理.

问题是在插入或更新期间,我创建了一个没有修改时间属性的MappedDummyTable实例,并将其传递给slick以进行创建/更新

TableQuery [MappedDummyTable] .insert(instanceOfMappedDummyTable)

为此,Slick创建查询为

Insert INTO MappedDummyTable(id,....,modified_time) Values(1,null)

并将modified_time更新为NULL,这是我不想要的.我希望Slick在更新和创建时忽略这些字段.

为了更新,我能做到

TableQuery [MappedDummyTable] .MAP(fieldsToBeUpdated).update(值)

但这导致地图方法中的20个奇数字段看起来很难看.

有没有更好的方法?

更新:

我发现的最佳解决方案是使用多个投影.我创建了一个用于获取值的投影,另一个用于更新和插入数据

解决方法

如果你不想编写像row =>这样的代码,你可能需要在表中编写一些触发器. (row.id,…其他20个字段)

或尝试使用None而不是null?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读