私はmongodbからSpringフレームワークを介してデータを取得しようとしています。 最初に返品タイプMap<String, Object>
を作成しましたが、User
値オブジェクトに変更することにしました。春データMongo DB検索データ:@Document VOがnullを返します
以下はここで
@Document(collection = "user")
public class User {
@Id
@Field(value="id")
private String id;
@Field(value="name")
private String name;
@Field(value="password")
private String password;
@Field(value="professional")
private String professional;
@Field(value="email")
private String email;
@Field(value="gravatar")
private String gravatar;
@PersistenceConstructor
public User(String id, String name, String password, String professional, String email, String gravatar) {
super();
this.id = id;
this.name = name;
this.password = password;
this.professional = professional;
this.email = email;
this.gravatar = gravatar;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProfessional() {
return professional;
}
public void setProfessional(String professional) {
this.professional = professional;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGravatar() {
return gravatar;
}
public void setGravatar(String gravatar) {
this.gravatar = gravatar;
}
};
とは
@Repository
public class MongoMemberDao implements CommonDao<String, Map<String, Object>, Exception> {
@Autowired
MongoTemplate template;
final String COLLECTION_NAME = "user";
@SuppressWarnings("unchecked")
@Override
public Map<String, Object> read(String key) throws Exception {
Query findQuery = new Query();
findQuery.addCriteria(Criteria.where("id").is(key));
return template.findOne(findQuery, Map.class, COLLECTION_NAME);
}
public User readByDocument(String id) throws Exception {
Query findOneQuery = new Query();
findOneQuery.addCriteria(Criteria.where("id").is(id));
return template.findOne(findOneQuery, User.class, COLLECTION_NAME);
}
};
read
方法は罰金を返すデータ
@repository
あるユーザーVOのためのクラスですが、
readByDocument
ない(
null
ない
User
インスタンスを返します)。私は
official documentを読む。しかし、私はそれを知りません。
FYI、パラメータQuery
は両方とも同じに見えます。 Query: { "id" : "system"}, Fields: null, Sort: null
- 私はなぜ
readByDocument
戻りnull
感謝を知ってほしいです。
----編集
フォローは私のデータベースであるコンフィグ
@Configuration
public class MongoConfig extends AbstractMongoConfiguration {
private final String MONGO_URL = "127.0.0.1";
private final Integer MONGO_PORT = 27017;
@Override
protected String getDatabaseName() {
return "tfarm";
}
@Override
// @Bean
public Mongo mongo() throws Exception {
return new MongoClient(MONGO_URL, MONGO_PORT);
}
}
そして、私は実装WebApplictaionInitializer
にこれを追加しました。現在のソリューション
については
スプリング設定ファイルを追加できますか? – Veeram
あなたが持っている '@ Field'アノテーションは完全に冗長であることに注意してください。 – chrylis
@chrylis '@ Field'は別の結果を出すことができますか?私はすでにそれを試してみましたが、何も変わっていません(私がまだ作っていないさらなるプロセスのために注釈を付けました)。とりあえずありがとう。 –