scala – 使用光滑插入和更新数据时丢弃值
我正在使用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? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |