inner java hibernate grails hql

java - inner - hql order by



No hay tipo de datos para el nodo: org.hibernate.hql.internal.ast.tree.IdentNode HQL (1)

Las consultas SQL usan nombres de columna, mientras que las consultas HQL usan las propiedades de clase. Está seleccionando artifact_id de la Clasificación, pero la clase de Clasificación no tiene una propiedad llamada ''artifact_id''. Para solucionarlo, use la propiedad de clase en su HQL.

SELECT artifactId FROM Classification

Tengo el HQL donde intento obtener artefactos que no tienen clasificación (cuando está activo es 0)

artifacts = Artifact.findAll("FROM Artifact WHERE id NOT IN ( SELECT artifact_id FROM Classification WHERE active = 1) AND document_id = :docid",[docid:document.id], [max:limit, offset:startIndex]);

Siempre que corro me sale el error.

java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode /-[IDENT] IdentNode: ''artifact_id'' {originalText=artifact_id}

Definición de la clasificación:

class Classification { public static final String USER_DEFAULT = "USER" public static final String USER_SYSTEM = "SYSTEM" TaxonomyNode node String artifactId Boolean active String createdBy String updatedBy Date dateCreated Date lastUpdated static constraints = { node nullable:false, blank:false artifactId nullable:false, blank:false, unique: [''node''] active nullable: false, blank: false createdBy nullable:false, blank:false updatedBy nullable:false, blank:false } static mapping = { id generator:''sequence'', params:[sequence:''classification_seq''] artifactId index: ''classify_by_artifact_node'' node index: ''classify_by_artifact_node'' active defaultValue: "1" } }

Puede referirse a los problemas anteriores que enfrenté para entender qué es exactamente lo que estoy tratando de hacer Quest 1 y Quest 2