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

172
Views
LazyInitializationException usando el parche agregado con Spring HATEOAS

Tengo una entidad ElementType que tiene un conjunto de EquipmentCodes:

 @Entity @Table(name = "ELEMENT_TYPES") public class ElementType extends AbstractEntity<Long> { @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name= "ELEM_TYPE_ID") private Set<EquipmentCode> equipmentCodes; }

Tengo ambas clases expuestas como Rest Resources con repositorios:

 @RepositoryRestResource(path = "elementTypes", collectionResourceRel = "elementTypes") @Transactional public interface ElementTypeRepository extends CrudRepository<ElementType, Long> {}

Ahora, si pruebo algunas operaciones, como

OBTENGA https://localhost:8080/api/elementTypes/40529090

o envío de PATCH

 { "equipmentCodes" : [ "https://localhost:8080/api/equipmentCodes/40529100" ] }

Sin embargo, parece funcionar bien si trato de agregar un nuevo código de equipo a los existentes:

 [ { "op": "add", "path": "/equipmentCodes", "value": [ "https://localhost:8080/api/equipmentCodes/40529099" ] } ]

yo obtengo

org.hibernate.LazyInitializationException: no se pudo inicializar de forma perezosa una colección, no se pudo inicializar el proxy; no hay sesión, en org.springframework.data.rest.webmvc.json.patch.JsonLateObjectEvaluator.evaluate(JsonLateObjectEvaluator.java:45)

¿Alguna pista sobre cuál es el problema? ¿Hay algún problema con la forma en que uso "agregar" o se trata de la configuración de Spring?

Editar: puede ser un error sintáctico, así no obtengo la excepción:

 [ { "op": "add", "path": "/equipmentCodes", "value": "https://localhost:8080/api/equipmentCodes/40529099" } ]

Sin embargo, lo que es extraño es que en lugar de agregar el EquipmentCode existente con id 40529099 al ElementType, solo está insertando un nuevo EquipmentCode vacío (por supuesto, estoy enviando el parche a https://localhost:8080/api/elementTypes/40529090 ), eliminando los otros en el conjunto y luego asignando al nuevo el ElementType

Para aclarar, lo que quiero es agregar un EquipmentCode que ya está en la base de datos al conjunto en ElementType, sin eliminar los EquipmentCodes actuales en ese conjunto.

about 4 years ago · Santiago Trujillo
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!