3
ここに私の(サンプル)オブジェクトがあります。私はMorphiaのために必要な何のほか、他の注釈を入れていない:MongoDB Javaドライバ/ Morphiaがプロパティを2度追加するのはなぜですか?
package jungle;
@Entity
public class Monkey {
String name;
int bananas;
@Embedded
TreeHouse house;
}
そしてTreeHouse
オブジェクト:
@Embedded
public class TreeHouse {
String type;
int distanceFromWater;
}
私は正規表現を使用してtype
に照会しようとしています。ここで私が使用しているMongoDBのクエリがあります(とコマンドラインを介して動作することが証明されました):
db.Monkey.find({ "house.type": { "$regex" : ".*coco.*", "$options": "i"}})
私はQuery
オブジェクトからfilter
メソッドを使用してJavaでこの正確な文字列を生成することができるよ:
com.google.code.morphia.query.ValidationException: The field 'house' could not be
found in 'jungle.Monkey' while validating - house.house.type; if you wish to
continue please disable validation.
注:私はJavaで検索を実行しようとすると、
Query query = ...; query = query.filter("house.type", Pattern.compile(".*coco.*", Pattern.CASE_INSENSITIVE));
はしかし、私はValidationException
を取得しますhouse.house.type
の倍加。
私はMorphiaのバージョン0.99を使用しています。バージョン2.5のMongoDB Javaドライバを使用しています。私は何か正しくしていないのですか?それとも、これは新しいバージョンで修正された問題ですか?