http://www.mongodb.org/display/DOCS/Java+-+Saving+Objects+Using+DBObject
このページは、MongoDB でのオブジェクトの保存と取得に関するものです。しかし、DBObject を実装した後、一連のメソッドをオーバーライドする必要があります。"myTweet.put("user", userId);" となるように PUT メソッドを実装する方法を知っている人はいますか? 働ける?
http://www.mongodb.org/display/DOCS/Java+-+Saving+Objects+Using+DBObject
このページは、MongoDB でのオブジェクトの保存と取得に関するものです。しかし、DBObject を実装した後、一連のメソッドをオーバーライドする必要があります。"myTweet.put("user", userId);" となるように PUT メソッドを実装する方法を知っている人はいますか? 働ける?
DBObjectを実装する代わりに、BasicDBObjectを拡張するだけです
class Tweet extends BasicDBObject {
public Tweet() {
super();
}
public Tweet(BasicDBObject base) {
super();
this.putAll(base);
}
}
Tweet myTweet = new Tweet();
myTweet.put("user", userId);
BasicDBObjectはDBObjectを実装するので、それを拡張するクラスは、 を実装するクラスを期待する任意の関数に渡すことができますDBObject
。インターフェースを実装したい場合は、つぶやきの属性を保存するコンテナ クラスを提供する必要があります。 BasicDBObject は、 sourceBasicBSONObject
で確認できる別のクラスを拡張することでこれを行います。単純な実装は次のようになります。
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.bson.BSONObject;
import com.mongodb.DBObject;
public class Tweet implements DBObject {
private Map<String, Object> data;
private boolean partial;
public Tweet() {
data = new HashMap<>();
partial = false;
}
@Override
public Object put(String key, Object value) {
return data.put(key, value);
}
@SuppressWarnings("unchecked")
@Override
public void putAll(BSONObject o) {
data.putAll(o.toMap());
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void putAll(Map m) {
data.putAll(m);
}
@Override
public Object get(String key) {
return data.get(key);
}
@SuppressWarnings("rawtypes")
@Override
public Map toMap() {
return data;
}
@Override
public Object removeField(String key) {
return data.remove(key);
}
@Override
public boolean containsKey(String key) {
return data.containsKey(key);
}
@Override
public boolean containsField(String key) {
return data.containsKey(key);
}
@Override
public Set<String> keySet() {
return data.keySet();
}
@Override
public void markAsPartialObject() {
partial = true;
}
@Override
public boolean isPartialObject() {
return partial;
}
}
このクラスは を実装し、DBObject
を使用してそのHashMap
プロパティを格納します。