1.0.0.M4からアップデートしてなかったので1.1.0.GAにアップデートを試みる。
以下、元のコードを変更する必要があったところのめも。
$orの書き方が変わった
旧
query.or(Query.query(Criteria.where("cnt").exists(false)), Query.query(Criteria.where("cnt").lt(5)));
新
query.addCriteria(new Criteria().orOperator(Criteria.where("cnt").exists(false)).orOperator(Criteria.where("cnt").lt(5)));
1.0.0.M5から変わったみたい。
Spring Data MongoDB - Reference Documentation
hintの書き方が変わった
旧
List<TestDto> list = mongoTemplate.find(query, TestDto.class, new CursorPreparer() { @Override public DBCursor prepare(DBCursor cursor) { cursor.hint("key_1_id_1"); return cursor; } }, "collection"));
ちょうめんどくさい。
hint指定するときはsortとかlimitとかskipとかもCursorPreparerの中で書かないといけない。
新
query.withHint("key_1_id_1");
…!!
らくちん…!!
「_class」を宣言してるクラス名が変わった
旧
org.springframework.data.mongodb.core.convert.DefaultTypeMapper
新
org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper
「_class」消したいときはこれまで通りDBObject#removeFieldするか、DefaultMongoTypeMapperのコンストラクタの引数が「_class」格納してる変数を書き換えてくれるので、null渡してインスタンス作ればいけるんじゃないかなーとか。
あとDtoのclass宣言につける@TypeAliasってアノテーションも追加されたっぽい。
まだ試してないけど「_class」の名前を任意で変更できるとかそういうアレだと思う。
あとは依存するjarの更新とかが必要みたいだけど、M3からM4ほどの大きな変更は必要なさそうでよかった。