2
我想名字,如果輸入的數據是新,意思是沒有現有的密鑰或值從以前的不同,這將只對關係數據存儲執行更新的方法。動機是,不觸發由標準更新引發的數據更改事件。更新只修改新數據時調用了什麼?
什麼是這樣的更新正確的術語,並會爲例簽名是什麼呢?
我想名字,如果輸入的數據是新,意思是沒有現有的密鑰或值從以前的不同,這將只對關係數據存儲執行更新的方法。動機是,不觸發由標準更新引發的數據更改事件。更新只修改新數據時調用了什麼?
什麼是這樣的更新正確的術語,並會爲例簽名是什麼呢?
因此,讓我們澄清你的聲明「只執行更新...如果輸入的數據是新的」。
如果只着眼於關係鍵,只有在更新時鍵變化,那麼你真的不「只能執行......如果......新」,作爲關鍵的值可能已經改變。
但是,如果您真的可能有兩次應用完全相同的值,並且第二次您什麼也不做,系統是idempotent。 冪等性 apis保證一個狀態後,他們被稱爲,這將不會改變重播情況。
非冪等呼叫的一個簡單的例子(由於API設計)
incrementCount();
而冪等呼叫的例子(與API允許它)
setCount(5);
注意,不做任何事情不是冪等API的特性,而是優化其安全地用於冪等調用執行。基本上,對於一個冪等API,你可以執行以下操作:
if (currentCommand.equals(lastCommand)) {
return;
}
目前,我只是在* IfStateChanged *後綴後綴方法。我不確定是否有更好的術語來描述這一點,因爲IfStateChanged有點含糊。 – stevebot
我不認爲這有一個標準的術語。就個人而言,我只是使用普通名稱,並且在Javadoc中聲明如果更新不會導致更改任何數據,則不會進行實際的數據庫更新。 –
在SQL中,'update'只能更新已經存在的行,而'insert'只能插入新行(並且如果給定鍵的行已經存在則失敗),所以也許這就是你可以使用的慣例。 –