-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Bug in new parser (Hibernate 3.0rc1)
PostPosted: Wed Mar 02, 2005 12:12 pm 
Expert
Expert

Joined: Thu Dec 04, 2003 12:36 pm
Posts: 275
Location: Bielefeld, Germany
I think there's a bug concerning the new parser which is the default in Hibernate 3.0rc1.

Please read this: http://forum.hibernate.org/viewtopic.php?t=939320


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 02, 2005 11:06 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 3:00 pm
Posts: 1816
Location: Austin, TX
Would be useful to see the sql being generated ;)

Also, turn on debug logging on the "org.hibernate.hql.AST" logger, and post the resulting HQL AST and SQL AST trees.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 03, 2005 6:00 am 
Expert
Expert

Joined: Thu Dec 04, 2003 12:36 pm
Posts: 275
Location: Bielefeld, Germany
No problem at all. :)

Here is a link to the complete logfile of this query.


The generated SQL:
Code:
select lectureseq0_.id as id, lectureseq0_.subject_id as subject2_4_, lectureseq0_.lecturer_id as lecturer3_4_, lectureseq0_.course_id as course4_4_, lectureseq0_.questionnaire_template_id as question5_4_, lectureseq0_.location as location4_, lectureseq0_.start_date as start7_4_, lectureseq0_.end_date as end8_4_, lectureseq0_.questionnaires_published_date as question9_4_ from lecture_sequences lectureseq0_ inner join courses course1_ on lectureseq0_.course_id=course1_.id inner join users students2_ on course1_.id=students2_.course_id, subjects subject5_ where (students2_.username=? and (lectureseq0_.questionnaires_published_date is not null) and lectureseq0_.questionnaires_published_date<=? and  not (exists (select surveypart3_.id from survey_participations surveypart3_, users student4_ where (surveypart3_.lecture_sequence_id=ls and student4_.username=?  and surveypart3_.student_id=student4_.id)))  and lectureseq0_.subject_id=subject5_.id) order by  lectureseq0_.questionnaires_published_date ASC , subject5_.name ASC



HQL AST:
Code:
\-[QUERY] CommonAST: 'query'
    +-[SELECT_FROM] CommonAST: 'SELECT_FROM'
    |  +-[FROM] CommonAST: 'FROM'
    |  |  +-[DOT] CommonAST: '.'
    |  |  |  +-[DOT] CommonAST: '.'
    |  |  |  |  +-[DOT] CommonAST: '.'
    |  |  |  |  |  +-[IDENT] CommonAST: 'de'
    |  |  |  |  |  \-[IDENT] CommonAST: 'w3s'
    |  |  |  |  \-[IDENT] CommonAST: 'persistence'
    |  |  |  \-[IDENT] CommonAST: 'LectureSequence'
    |  |  +-[ALIAS] CommonAST: 'ls'
    |  |  \-[JOIN] CommonAST: 'JOIN'
    |  |     +-[DOT] CommonAST: '.'
    |  |     |  +-[DOT] CommonAST: '.'
    |  |     |  |  +-[IDENT] CommonAST: 'ls'
    |  |     |  |  \-[IDENT] CommonAST: 'course'
    |  |     |  \-[IDENT] CommonAST: 'students'
    |  |     \-[ALIAS] CommonAST: 'studs'
    |  \-[SELECT] CommonAST: 'SELECT'
    |     \-[IDENT] CommonAST: 'ls'
    +-[WHERE] CommonAST: 'WHERE'
    |  \-[AND] CommonAST: 'AND'
    |     +-[AND] CommonAST: 'AND'
    |     |  +-[AND] CommonAST: 'AND'
    |     |  |  +-[EQ] CommonAST: '='
    |     |  |  |  +-[DOT] CommonAST: '.'
    |     |  |  |  |  +-[IDENT] CommonAST: 'studs'
    |     |  |  |  |  \-[IDENT] CommonAST: 'username'
    |     |  |  |  \-[COLON] CommonAST: ':'
    |     |  |  |     \-[IDENT] CommonAST: 'username'
    |     |  |  \-[IS_NOT_NULL] CommonAST: 'is not null'
    |     |  |     \-[DOT] CommonAST: '.'
    |     |  |        +-[IDENT] CommonAST: 'ls'
    |     |  |        \-[IDENT] CommonAST: 'questionnairesPublishedDate'
    |     |  \-[LE] CommonAST: '<='
    |     |     +-[DOT] CommonAST: '.'
    |     |     |  +-[IDENT] CommonAST: 'ls'
    |     |     |  \-[IDENT] CommonAST: 'questionnairesPublishedDate'
    |     |     \-[COLON] CommonAST: ':'
    |     |        \-[IDENT] CommonAST: 'today'
    |     \-[NOT] CommonAST: 'not'
    |        \-[EXISTS] CommonAST: 'EXISTS'
    |           \-[QUERY] CommonAST: 'query'
    |              +-[SELECT_FROM] CommonAST: 'SELECT_FROM'
    |              |  \-[FROM] CommonAST: 'FROM'
    |              |     +-[DOT] CommonAST: '.'
    |              |     |  +-[DOT] CommonAST: '.'
    |              |     |  |  +-[DOT] CommonAST: '.'
    |              |     |  |  |  +-[IDENT] CommonAST: 'de'
    |              |     |  |  |  \-[IDENT] CommonAST: 'w3s'
    |              |     |  |  \-[IDENT] CommonAST: 'persistence'
    |              |     |  \-[IDENT] CommonAST: 'SurveyParticipation'
    |              |     \-[ALIAS] CommonAST: 'sp'
    |              \-[WHERE] CommonAST: 'WHERE'
    |                 \-[AND] CommonAST: 'AND'
    |                    +-[EQ] CommonAST: '='
    |                    |  +-[DOT] CommonAST: '.'
    |                    |  |  +-[IDENT] CommonAST: 'sp'
    |                    |  |  \-[IDENT] CommonAST: 'lectureSequence'
    |                    |  \-[IDENT] CommonAST: 'ls'
    |                    \-[EQ] CommonAST: '='
    |                       +-[DOT] CommonAST: '.'
    |                       |  +-[DOT] CommonAST: '.'
    |                       |  |  +-[IDENT] CommonAST: 'sp'
    |                       |  |  \-[IDENT] CommonAST: 'student'
    |                       |  \-[IDENT] CommonAST: 'username'
    |                       \-[COLON] CommonAST: ':'
    |                          \-[IDENT] CommonAST: 'username'
    \-[ORDER] CommonAST: 'ORDER'
       +-[DOT] CommonAST: '.'
       |  +-[IDENT] CommonAST: 'ls'
       |  \-[IDENT] CommonAST: 'questionnairesPublishedDate'
       +-[ASCENDING] CommonAST: 'ASC'
       +-[DOT] CommonAST: '.'
       |  +-[DOT] CommonAST: '.'
       |  |  +-[IDENT] CommonAST: 'ls'
       |  |  \-[IDENT] CommonAST: 'subject'
       |  \-[IDENT] CommonAST: 'name'
       \-[ASCENDING] CommonAST: 'ASC'



SQL AST:
Code:
\-[SELECT] QueryNode: 'SELECT'  querySpaces (courses,users,subjects,survey_participations,lecture_sequences)
    +-[SELECT_CLAUSE] SelectClause: '{select clause}'
    |  +-[ALIAS_REF] IdentNode: 'lectureseq0_.id as id' {alias=ls, className=de.w3s.persistence.LectureSequence, tableAlias=lectureseq0_}
    |  \-[SQL_TOKEN] SqlFragment: 'lectureseq0_.subject_id as subject2_4_, lectureseq0_.lecturer_id as lecturer3_4_, lectureseq0_.course_id as course4_4_, lectureseq0_.questionnaire_template_id as question5_4_, lectureseq0_.location as location4_, lectureseq0_.start_date as start7_4_, lectureseq0_.end_date as end8_4_, lectureseq0_.questionnaires_published_date as question9_4_'
    +-[FROM] FromClause: 'FROM' FromClause{FROM}
    |  +-[FROM_FRAGMENT] FromElement: 'lecture_sequences lectureseq0_' FromElement{explicit,not a collection join,classAlias=ls,role=null,tableName=lecture_sequences,tableAlias=lectureseq0_,colums={,className=de.w3s.persistence.LectureSequence}}
    |  |  \-[JOIN_FRAGMENT] ImpliedFromElement: 'inner join courses course1_ on lectureseq0_.course_id=course1_.id' ImpliedFromElement{implied in FROM clause,not a collection join,classAlias=null,role=null,tableName=courses,tableAlias=course1_,colums={lectureseq0_.course_id ,className=de.w3s.persistence.Course}}
    |  |     \-[JOIN_FRAGMENT] FromElement: 'inner join users students2_ on course1_.id=students2_.course_id' FromElement{explicit,not a collection join,classAlias=studs,role=de.w3s.persistence.Course.students,tableName=users,tableAlias=students2_,colums={course1_.id ,className=de.w3s.persistence.Student}}
    |  \-[FROM_FRAGMENT] ImpliedFromElement: 'subjects subject5_' ImpliedFromElement{implied,not a collection join,classAlias=null,role=null,tableName=subjects,tableAlias=subject5_,colums={lectureseq0_.subject_id ,className=de.w3s.persistence.Subject}}
    +-[WHERE] SqlNode: 'WHERE'
    |  +-[AND] SqlNode: 'AND'
    |  |  +-[AND] SqlNode: 'AND'
    |  |  |  +-[AND] SqlNode: 'AND'
    |  |  |  |  +-[EQ] SqlNode: '='
    |  |  |  |  |  +-[DOT] DotNode: 'students2_.username' {propertyName=username,dereferenceType=4,propertyPath=username,path=studs.username,tableAlias=students2_,className=de.w3s.persistence.Student,classAlias=studs}
    |  |  |  |  |  |  +-[ALIAS_REF] IdentNode: 'students2_.id' {alias=studs, className=de.w3s.persistence.Student, tableAlias=students2_}
    |  |  |  |  |  |  \-[IDENT] IdentNode: 'username' {originalText=username}
    |  |  |  |  |  \-[NAMED_PARAM] SqlNode: '?'
    |  |  |  |  \-[IS_NOT_NULL] SqlNode: 'is not null'
    |  |  |  |     \-[DOT] DotNode: 'lectureseq0_.questionnaires_published_date' {propertyName=questionnairesPublishedDate,dereferenceType=4,propertyPath=questionnairesPublishedDate,path=ls.questionnairesPublishedDate,tableAlias=lectureseq0_,className=de.w3s.persistence.LectureSequence,classAlias=ls}
    |  |  |  |        +-[ALIAS_REF] IdentNode: 'lectureseq0_.id' {alias=ls, className=de.w3s.persistence.LectureSequence, tableAlias=lectureseq0_}
    |  |  |  |        \-[IDENT] IdentNode: 'questionnairesPublishedDate' {originalText=questionnairesPublishedDate}
    |  |  |  \-[LE] SqlNode: '<='
    |  |  |     +-[DOT] DotNode: 'lectureseq0_.questionnaires_published_date' {propertyName=questionnairesPublishedDate,dereferenceType=4,propertyPath=questionnairesPublishedDate,path=ls.questionnairesPublishedDate,tableAlias=lectureseq0_,className=de.w3s.persistence.LectureSequence,classAlias=ls}
    |  |  |     |  +-[ALIAS_REF] IdentNode: 'lectureseq0_.id' {alias=ls, className=de.w3s.persistence.LectureSequence, tableAlias=lectureseq0_}
    |  |  |     |  \-[IDENT] IdentNode: 'questionnairesPublishedDate' {originalText=questionnairesPublishedDate}
    |  |  |     \-[NAMED_PARAM] SqlNode: '?'
    |  |  \-[NOT] SqlNode: 'not'
    |  |     \-[EXISTS] SqlNode: 'EXISTS'
    |  |        \-[SELECT] QueryNode: 'SELECT'  querySpaces (courses,users,subjects,survey_participations,lecture_sequences)
    |  |           +-[SELECT_CLAUSE] SelectClause: '{derived select clause}'
    |  |           |  \-[SELECT_EXPR] SelectExpressionImpl: 'surveypart3_.id' {FromElement{explicit,not a collection join,classAlias=sp,role=null,tableName=survey_participations,tableAlias=surveypart3_,colums={,className=de.w3s.persistence.SurveyParticipation}}}
    |  |           +-[FROM] FromClause: 'FROM' FromClause{FROM}
    |  |           |  +-[FROM_FRAGMENT] FromElement: 'survey_participations surveypart3_' FromElement{explicit,not a collection join,classAlias=sp,role=null,tableName=survey_participations,tableAlias=surveypart3_,colums={,className=de.w3s.persistence.SurveyParticipation}}
    |  |           |  \-[FROM_FRAGMENT] ImpliedFromElement: 'users student4_' ImpliedFromElement{implied,not a collection join,classAlias=null,role=null,tableName=users,tableAlias=student4_,colums={surveypart3_.student_id ,className=de.w3s.persistence.Student}}
    |  |           \-[WHERE] SqlNode: 'WHERE'
    |  |              +-[AND] SqlNode: 'AND'
    |  |              |  +-[EQ] SqlNode: '='
    |  |              |  |  +-[DOT] DotNode: 'surveypart3_.lecture_sequence_id' {propertyName=lectureSequence,dereferenceType=ROOT_LEVEL,propertyPath=lectureSequence,path=sp.lectureSequence,tableAlias=surveypart3_,className=de.w3s.persistence.SurveyParticipation,classAlias=sp}
    |  |              |  |  |  +-[ALIAS_REF] IdentNode: 'surveypart3_.id' {alias=sp, className=de.w3s.persistence.SurveyParticipation, tableAlias=surveypart3_}
    |  |              |  |  |  \-[IDENT] IdentNode: 'lectureSequence' {originalText=lectureSequence}
    |  |              |  |  \-[IDENT] IdentNode: 'ls' {originalText=ls}
    |  |              |  \-[EQ] SqlNode: '='
    |  |              |     +-[DOT] DotNode: 'student4_.username' {propertyName=username,dereferenceType=4,propertyPath=username,path=sp.student.username,tableAlias=student4_,className=de.w3s.persistence.Student,classAlias=null}
    |  |              |     |  +-[DOT] DotNode: 'surveypart3_.student_id' {propertyName=student,dereferenceType=1,propertyPath=student,path=sp.student,tableAlias=student4_,className=de.w3s.persistence.Student,classAlias=null}
    |  |              |     |  |  +-[ALIAS_REF] IdentNode: 'surveypart3_.id' {alias=sp, className=de.w3s.persistence.SurveyParticipation, tableAlias=surveypart3_}
    |  |              |     |  |  \-[IDENT] IdentNode: 'student' {originalText=student}
    |  |              |     |  \-[IDENT] IdentNode: 'username' {originalText=username}
    |  |              |     \-[NAMED_PARAM] SqlNode: '?'
    |  |              \-[THETA_JOINS] SqlNode: '{theta joins}'
    |  |                 \-[SQL_TOKEN] SqlFragment: 'surveypart3_.student_id=student4_.id'
    |  \-[THETA_JOINS] SqlNode: '{theta joins}'
    |     \-[SQL_TOKEN] SqlFragment: 'lectureseq0_.subject_id=subject5_.id'
    \-[ORDER] OrderByClause: 'ORDER'
       +-[DOT] DotNode: 'lectureseq0_.questionnaires_published_date' {propertyName=questionnairesPublishedDate,dereferenceType=4,propertyPath=questionnairesPublishedDate,path=ls.questionnairesPublishedDate,tableAlias=lectureseq0_,className=de.w3s.persistence.LectureSequence,classAlias=ls}
       |  +-[ALIAS_REF] IdentNode: 'lectureseq0_.id' {alias=ls, className=de.w3s.persistence.LectureSequence, tableAlias=lectureseq0_}
       |  \-[IDENT] IdentNode: 'questionnairesPublishedDate' {originalText=questionnairesPublishedDate}
       +-[ASCENDING] SqlNode: 'ASC'
       +-[DOT] DotNode: 'subject5_.name' {propertyName=name,dereferenceType=4,propertyPath=name,path=ls.subject.name,tableAlias=subject5_,className=de.w3s.persistence.Subject,classAlias=null}
       |  +-[DOT] DotNode: 'lectureseq0_.subject_id' {propertyName=subject,dereferenceType=1,propertyPath=subject,path=ls.subject,tableAlias=subject5_,className=de.w3s.persistence.Subject,classAlias=null}
       |  |  +-[ALIAS_REF] IdentNode: 'lectureseq0_.id' {alias=ls, className=de.w3s.persistence.LectureSequence, tableAlias=lectureseq0_}
       |  |  \-[IDENT] IdentNode: 'subject' {originalText=subject}
       |  \-[IDENT] IdentNode: 'name' {originalText=name}
       \-[ASCENDING] SqlNode: 'ASC'


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 03, 2005 6:03 am 
Expert
Expert

Joined: Thu Dec 04, 2003 12:36 pm
Posts: 275
Location: Bielefeld, Germany
In addition to that I tried to use Hibernate 3.0rc1 with the ClassicQueryTranslatorFactory (using hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory).

It works without any problems...


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.