Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

303
Vistas
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 Respuestas
Responde la pregunta

0

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

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda