Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

305
Views
Morphia/Mongo no pudo vincular @Reference, dando: No se pudo obtener la referencia

Configuré un almacén de datos simple para almacenar una versión y una compilación. Aquí están sus clases-

 @Entity("Version") public class Version { @Id private ObjectId id = new ObjectId(); public Version() {} private String name; }
 @Entity("Build") public class Build { public Build() {} @Id ObjectId id = new ObjectId(); @Reference Version version; String name; }

(los campos en las clases que tienen sus getters, setters, constructores y toString implementados).

Ahora estoy tratando de simplemente almacenar la versión primero y luego intentar almacenar una compilación y luego leer todas las compilaciones que están presentes.

 Version version = new Version("first"); Version version2 = new Version("second"); VersionDAO.saveVersion(version); VersionDAO.saveVersion(version2); VersionDAO.printAllVersions(); Build build = new Build(version, "Hello"); BuildDAO.saveBuild(build); BuildDAO.getAllBuilds();

VersionDAO.getAllVersions() funciona bien y me da la lista de versiones almacenadas, pero BuildDAO.getAllBuilds() arroja un error que dice:

Excepción en el subproceso "principal" dev.morphia.mapping.MappingException: no se pudo mapear try_morphia.Build con ID: 602f4e9ff760cd5638698273 en la base de datos 'Builds'

Provocado por: dev.morphia.mapping.MappingException: la referencia ({ "$ref" : "Version", "$id" : "602f4e7b96f28d54bd1cc883" }) no se pudo recuperar para intentar_morphia.Build.version

Parece que hay algún problema de enlace de referencia que no puedo entender. Tengo que usar @Reference ya que este fragmento de código es parte de un fragmento más grande y no puedo cambiarlo por completo.

MongoDB Compass muestra el valor de una entrada de compilación como-

 _id: ObjectId("602f4e9ff760cd5638698273") className: "trying_morphia.Build" version: DBRef(Version, 602f4e7b96f28d54bd1cc883, undefined) name:"Hello"

¿Qué me falta en la referencia?

Lo que he intentado: Cambiar la identificación de Version y Build a string.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Las referencias cruzadas de bases de datos no son compatibles con Morphia. Deberá administrar esas referencias manualmente.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!