2
respuestas

[Sugerencia] Exception in thread "main"

Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: nombre of: com.latam.alura.tienda.modelo.Categoria [SELECT P FROM com.latam.alura.tienda.modelo.Producto AS P WHERE P.categoria.nombre = :nombre]

Se debe agrega id en la query:

String jpql = "SELECT P FROM Producto AS P WHERE P.categoria.nombre = :nombre";

De esta forma:

String jpql = "SELECT P FROM Producto AS P WHERE P.categoria.id.nombre = :nombre";
2 respuestas

Hola Bruno,

¿Ha podido resolver el error? Parece que el error es debido a la forma en que estás tratando de acceder a la propiedad nombre de la entidad Categoria en tu consulta JPQL.

En tu consulta actual, estás intentando acceder a la propiedad nombre de la entidad Categoria a través de la entidad Producto. Sin embargo, parece que la propiedad nombre no es directamente accesible desde Producto a través de Categoria.

Estás utilizando una clave compuesta en tu entidad Categoria, y la propiedad nombre es parte de esta clave compuesta. En este caso, necesitarías acceder a la propiedad nombre a través del identificador embebido en tu entidad Categoria.

La categoriaId es el identificador embebido en tu entidad Categoria y nombre es la propiedad dentro de este identificador embebido.

Hace otra prueba por favor. Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

De hecho comparti la solución.

El problema se presenta al seguir los pasos del instructor en el video.

La misma duda presento antes Jaun y la respuesta que el dieron fue comentar o eliminar el metodo. Me parecio bueno compartir la manera en la que lo solucione mantienedo ese metodo funcional.

Saludos!