2016-12-17 4 views
0

Mon application Java se connecte à CouchDB en utilisant l'API de persistance Ektorp http://ektorp.org/reference_documentation.html pour stocker et récupérer des objets. J'essaie de stocker un bean simple avec quelques propriétés de chaîne et en utilisant CouchDbConnector.create (mybean) pour créer le document et CouchDbConnector.get (mybean.class, doumentid) pour récupérer le document. Lorsque j'étend mon bean avec CouchDBDocument comme documenté ici http://ektorp.org/reference_documentation.html#d100e355, il fonctionne bien lors de la création et la récupération du document mais si je ne l'étend pas avec CouchDBDocument et annoter les attributs "id" et "révision" comme indiqué ici http://ektorp.org/reference_documentation.html#d100e31, puis créer un document fonctionne mais récupérer le document lève cette exception.org.ektorp.DbAccessException si POJO n'est pas étendu à partir de CouchDbDocument

exception imbriquée est org.ektorp.DbAccessException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: champ non reconnu "_id"

J'ai essayé différentes options en changeant le nom "id" à "_id" mais je ne travaille pas. De plus, je remarque que lorsque je ne déploie pas mon bean avec CouchDbDocument alors dans le couchdb, un champ "id" et "revision" sont créés dans le document avec "_id" et "_rev". Ces champs ne sont pas créés lorsque j'élargis CouchDbDocument. Une idée de ce qui ne va pas ici?

Répondre

0

Le champ id doit être sérialisé à "_id". Écrivez un test unitaire et vérifiez que votre classe peut être écrite dans json et lisez json avec les champs nommés _id et _rev.

+0

J'ai créé une classe très simple avec un seul champ String et les deux autres champs sont id et révision, les deux sont annotés avec @JsonProperty ("_ id") et @JsonProperty ("_ rev") mais récupérant encore jette Erreur. –

+0

J'ai également copié l'intégralité du code de CouchDbDocument depuis et vient de renommer le nom de la classe et essayé la même chose, mais récupère toujours erreur. Il semble qu'il attend un objet CouchDbDocument uniquement. –