db4oのネィティブクエリ(NQ)だが、使い方によっては意図しない結果になる不具合?があることが判ったので書いておく。 今までのサンプルでも使用した"roster.db"で以下の順で処理を行うとする。 守備位置が"SS"である選手をNQで検索 (D.Jeterが結果に掛かるはず) 守備位置が"SS"である選手の守備位置を"3B"に変更してコミット 守備位置が"SS"である選手をNQで検索 (D.Jeterは結果に掛からないはず) この通りの処理を以下のコードで実行してみよう。 ObjectServer os = Db4o.openServer("roster.db", 0); ObjectContainer db = os.openClient(); try { printResult(nqForPosition(db, "SS"), "NQ for Pos = 'SS'"); Objec