cuando trabajas con hibernate no tienes que usar sentencias SQL, sino HQL (Hibernate Query Language)
no tienes que poner el nombre de las tablas, sino como ya has adivinado, el nombre de tu clase Java
no hay que poner los campos que se desean recuperar ya que por defecto cargará todos
tampoco hay que poner en nombre de las columnas, sino el nombre de los atributos de tu clase
las joins te las hace solo para cosas sencillas, y si quieres hacer cosas complicadas, te recomendaría usar Criterias, de hibernate también
en tu ejemplo, el código sería algo asi
Código Javascript
:
Ver originalfrom Producto as prod where prod.categoria.nombre = 'xxxxx'
no es obligatorio usar un alias.
categoría hace referencia al parámetro de la clase
Categoria que debería contener tu clase
Producto, y nombre hace referencia al atributo
nombre que debería contener tu clase
Categoria
si en lugar de buscar por nombre buscas por id, tendrías que cambiarlo
un saludo y espero haberte aclarado algo ;)