使用可选列进行3次更新

时间:2015-10-02 09:41:11

标签: slick-3.0

使用Slick 3,我想根据用户提供的属性更新我的行。说,我有2个属性电子邮件和名称。如果提供了电子邮件和名称,我将更新数据库中的两个属性。如果提供了其中任何一个,我将只更新提供的那个并让另一个解开。

我在这里找到了我想要的东西,

Conditonally UPDATE fields with Slick String interpolation

但我不想直接操纵查询字符串。这是唯一的方法吗?我更喜欢使用filterupdate方法。感谢

2 个答案:

答案 0 :(得分:0)

我找不到足够快的答案,我心软了。我使用多个更新配置而不是通用的组合更新。这很糟糕,因为配置数量取决于参数变量数量的2次幂。它将变得笨拙和爆炸。幸运的是,目前我有2个参数需要管理。

答案 1 :(得分:0)

一种可能的解决方法是首先获取记录,在内存中更新其字段,然后将其传递给Slick update。它将为所有字段生成SQL UPDATE。

请注意,它应该在事务中完成,并且可能具有不同的语义,具体取决于您的事务隔离级别。