私は DB4O を使用して新しい Web アプリケーションを構築して遊んでいます。私が苦労していることの 1 つは、現在 DB4O がステートレス アプリケーション (つまり、主に Web アプリケーション) をサポートしていないことと、自動生成された ID が必要なことです。
DB4O のイベントにフックしたり、数値 ID ではなく GUID を使用したり、何らかの理由で ID のシステムをまったく使用しないようにするなど、多くの創造的で興味深いアプローチを見つけることができました。
それぞれのアプローチにはメリットがありますが、あまり洗練されていないアプローチも同様に最適である可能性があるのではないかと考えています。次の擬似コードを検討してください。
If ID == 0 or null
Set ID = (typeof(myObject)).Count
myObject.Save
とても単純なアプローチのように思えますが、通常、ここで「本当に明らかなことを見逃した」と考え始めます。私は持っていますか?