2

我试图实现某种形式的repsertByrepsert其中键是提供的唯一,在等行getByupsertBy

我的方法:在upsertBy. 现在upsertBy需要一个唯一约束、一条记录和一个更改列表,以在唯一冲突的情况下应用。为了实现repsertBy,我希望该更改列表是“将所有字段分配给新值”。

repsertBy :: (MonadIO m, PersistRecordBackend record backend)
          => Unique record -> record
          -> ReaderT backend m (Entity record)
repsertBy unique record = upsertBy unique record [ entifyField =. value | … ]

我被困住了。

我可以通过调用toPersistValue记录的toPersistFields. 但是我从哪里可以得到EntityFields?

我原以为它们可以在实体定义的某个地方èntityDef找到,但到目前为止还没有找到。我尝试与实际后端的替换和更新实现进行比较,但只发现了 SQL 级别的字符串碰撞。

我目前正在手动拼写字段,但有时我会在实体中添加一个而忘记在repsertBy. 有什么办法可以访问EntityFields吗?

4

0 回答 0