2014-10-20 5 views
18

ich die HQL, wo ich versuche, Artefakte zu erhalten, die keine Einstufung haben (wenn sie aktiv ist 0)Keine Datentyp für Knoten: org.hibernate.hql.internal.ast.tree.IdentNode HQL

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]); 

Jedes Mal, wenn ich laufe ich den Fehler

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

Classificaiton Definition:

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" 
    } 
} 

Sie zur vorherigen Probleme beziehen kann ich Gesicht d zu verstehen, was genau ich versuche Quest 1 und Quest 2

+0

Es wäre hilfreich zu sehen Klassifikationsdefinition – Krever

Antwort

37

SQL-Abfragen verwenden Spaltennamen, während HQL-Abfragen Klasseneigenschaften verwenden. Sie wählen artifact_id aus der Klassifizierung, aber die Classification-Klasse hat keine Eigenschaft mit dem Namen 'artifact_id'. Um es zu beheben, verwenden Sie die Klasseneigenschaft in Ihrem HQL.

SELECT artifactId FROM Classification 
+0

Ich habe nur das getan, bevor ich das gesehen habe und es funktioniert. Trotzdem danke!!! :) – krs8785