Legen Sie DBObject in MongoDB mit Spring Data
Ich versuchte, legen Sie die folgenden DBObject in MongoDB mit Spring Data:
BasicDBObject document = new BasicDBObject();
document.put("country", "us");
document.put("city", "NY");
mongoTemplate.insert(document);
wo mongoTemplate ist mein Frühlings-Vorlage (org.springframework.Daten.mongodb.core.MongoTemplate).
Beim ausführen bekomme ich:
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: No Persitent Entity information found for the class com.mongodb.BasicDBObject
at org.springframework.data.mongodb.core.MongoTemplate.determineCollectionName(MongoTemplate.java:1747)
at org.springframework.data.mongodb.core.MongoTemplate.determineEntityCollectionName(MongoTemplate.java:1732)
at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:658)
Mein JSON wäre dynamisch am Ende. Also keine Ahnung, wie diese Person Informationen dynamisch ?
Oder gibt es eine andere Möglichkeit zum einfügen von rohen JSON in Mongodb über den Frühling-Daten ?
- Fühlen Sie sich frei, um die Antwort akzeptieren 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du verwechselst Frühling-Daten mit normalen mongo Persistenz mit der java-Treiber.
Wenn Sie wollen, um die Persistenz der Daten zu mongoDB direkt mit dem java-Treiber dann verwenden Sie die BasicDBObject wie Sie gezeigt haben, außer dass Sie nicht verwenden würde die mongoTemaplate Klasse zu bestehen, sondern die MongoClient Klasse. Also würde es so Aussehen:
Aber wenn Sie versuchen, zu bestehen, ein Dokument mit spring-data, dann müssen Sie erstellen Sie eine java-Klasse repräsentieren Ihr Dokument (z.B.: Mensch) und versehen diese Klasse mit @Document(collection="person") und verwenden Sie dann die mongoTemplate (das ist eine spring-Daten bestimmten Klasse zu bestehen dieser Einheit. Dies ist vergleichbar mit der Verwendung von JPA/hibernate.
So würde es in etwa so Aussehen
Und dann die Persistenz
mongoTemplate.insert("{\"name\":\"helloworld\"}");
da er nicht schweigen über den Namen der Kollektion? rit?Einen anderen Weg, dies zu tun ist, um direkt auf die
DBCollection
Objekt über denMongoTemplate
:Anderen Weg, es zu tun
Import-Anweisungen
Member-Variablen
Und dann die Methode