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