Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Duda usando spring boot y gralvm

Hola, estoy realizando una app con spring boot y lo compilo a nativo usando gralvm, pero obtengo el siguiente error: "Hibernate: select c1_0.id,c1_0.created_at,c1_0.faculty_id,c1_0.name,c1_0.updated_at from careers c1_0 2025-03-04T20:16:51.543Z INFO 1 --- [v_0.2] [io-8080-exec-10] o.h.e.internal.DefaultLoadEventListener : HHH000327: Error performing load command org.hibernate.HibernateException: Generation of HibernateProxy instances at runtime is not allowed when the configured BytecodeProvider is 'none'; your model requires a more advanced BytecodeProvider to be enabled. at org.hibernate.bytecode.internal.none.DisallowedProxyFactory.getProxy(DisallowedProxyFactory.java:34) ]". Me he dado cuenta que es porque estoy realizando relaciones, funciona bien en modo normal pero en nativo se rompe todo el código. De antemano, agradezco su ayuda.

2 respuestas
solución!

Hola Deyver,

Entiendo que estás enfrentando un problema al compilar tu aplicación de Spring Boot a un binario nativo usando GraalVM, específicamente relacionado con Hibernate y la generación de proxies. Este es un problema común cuando se trabaja con GraalVM, ya que ciertas características de Java no son compatibles directamente en el modo nativo.

El error que estás viendo indica que Hibernate no puede generar instancias de proxy debido a la configuración del BytecodeProvider. Para solucionar este problema, puedes intentar lo siguiente:

  1. Configurar un BytecodeProvider compatible: Asegúrate de que tu configuración de Hibernate esté utilizando un BytecodeProvider que sea compatible con la generación de proxies. Puedes hacerlo configurando Hibernate para usar javassist o bytebuddy en lugar de none. Esto se puede hacer en tu archivo de configuración de Hibernate.

    Por ejemplo, en tu archivo application.properties o application.yml, puedes especificar:

    spring.jpa.properties.hibernate.bytecode.provider=javassist
    
  2. Revisar las configuraciones de GraalVM: Asegúrate de que tu configuración de GraalVM esté correctamente ajustada para soportar las características que estás utilizando. GraalVM requiere configuraciones específicas para reflección, proxies y otros aspectos. Puedes usar herramientas como native-image-agent para ayudar a generar estas configuraciones automáticamente.

  3. Verificar las dependencias: Asegúrate de que todas las dependencias que estás utilizando sean compatibles con GraalVM en modo nativo. Algunas bibliotecas pueden requerir configuraciones adicionales o incluso no ser compatibles.

  4. Consultar la documentación de GraalVM: La documentación de GraalVM y las guías de Spring Boot para compilar a binario nativo pueden proporcionar información adicional y ejemplos específicos que podrían ayudarte a resolver este problema.

Espero que estas sugerencias te sean útiles y te ayuden a avanzar con tu proyecto.

Abrazos y buenos estudios!

Por favor, no olvides marcar este post como solucionado. ¡Es de gran ayuda para la comunidad! ✓ Sigue adelante con tus estudios.

Gracias, me fue de mucha ayuda