使用Slick 3,我想根据用户提供的属性更新我的行。说,我有2个属性电子邮件和名称。如果提供了电子邮件和名称,我将更新数据库中的两个属性。如果提供了其中任何一个,我将只更新提供的那个并让另一个解开。
我在这里找到了我想要的东西,
Conditonally UPDATE fields with Slick String interpolation
但我不想直接操纵查询字符串。这是唯一的方法吗?我更喜欢使用filter
和update
方法。感谢
答案 0 :(得分:0)
我找不到足够快的答案,我心软了。我使用多个更新配置而不是通用的组合更新。这很糟糕,因为配置数量取决于参数变量数量的2次幂。它将变得笨拙和爆炸。幸运的是,目前我有2个参数需要管理。
答案 1 :(得分:0)
一种可能的解决方法是首先获取记录,在内存中更新其字段,然后将其传递给Slick update
。它将为所有字段生成SQL UPDATE。
请注意,它应该在事务中完成,并且可能具有不同的语义,具体取决于您的事务隔离级别。