-->
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: HQL produces buggy SQL when component mapping is involved
PostPosted: Sun Mar 26, 2006 4:59 am 
Newbie

Joined: Wed Oct 12, 2005 4:39 pm
Posts: 15
Location: India
I have a StudentEnrollment Object mapped one-to-one with a StudentEnquiry Object.
StudentEnquiry object has a component mapping with StudentCentreTimePreferences.
Now the issue is that my HQL navigation from Enrollment to StudentCentreTimePreferences.centrePreference fails.

Couple of interesting things I noticed:

When I start out from StudentEnquiry,the query succeeds.

"select StudentEnquiry.centreTimePreferences.centrePreference.strId from StudentEnquiry" works perfect!

But if I start from StudentEnrollment, the following problems occur.

"select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId from StudentEnrollment" generates an erroneous SQL.

If you notice the show_hql=true dump (pasted down), you would see there is a syntax error in the sql code that got generated for the HQL. studentenq1_ table is completely missing from the "from clause" apart from some commas missing! Am clueless as to why this error occurs. Is it a hibernate bug or am I doing something wrong.

Further, let me also state that somehow when I tried to access id instead of strId in the above queries, I get saying centrePreference.id not recognized! So changing from primitive int to String solved the problem of accessing the id when starting from StudentEnquiry object.
The problem with StudentEnrollment however still persists even after introducing at strId in the object and mapping!

Is this again a bug? Primitive types not being accessible in a complex query?

Again, another issue that I noticed is that when I use Hibernate 3.1.X, after some level of nesting (select x.yz.a.b.c. etc...), it malfunctions throwing NPE! When I tried to google for this problem sometime back, I noticed that there was a bug against this in JIRA already. I am not able to search it back and so am not able to post the reference. I will be very happy if any of the Hibernate developers on this group comment if this is going to be fixed in the near-future releases ? :-)

So I am forced to stick to 3.0.5. Hope this bug will be fixed by the community soon. :-)

After going through the description, please tell me if there is something wrong in what I am doing. Or I will be happy to raise a defect in JIRA if someone suggests that I should do so.

Thanks much.
Regards,
Raghu

Hibernate version: 3.0.5

Mapping documents:

The following shows the one-to-one mapping from my StudentEnrollment class to StudentEnquiry class

<class name="com.tuningfork.student.businessobject.enrollment.StudentEnrollment" table="studentenrollment">
<id name="enquiryId" column="EnquiryId">
<generator class="foreign">
<param name="property">enquiry</param>
</generator>
</id>

<one-to-one name="enquiry" foreign-key="enquiryId" class="com.tuningfork.student.businessobject.enquiry.StudentEnquiry" constrained="true"/>
.....
.....
</class>



The next that follows is the component mapping between StudentEnquiry and CentreTimePreference object.

<class name="com.tuningfork.student.businessobject.enquiry.StudentEnquiry" table="studentenquiry">
<id name="id" column="Id">
<generator class="increment"/>
</id>
....
....
<set name="centreTimePreferences" order-by="rank asc" table="studentcentretimepreference">
<key column="EnquiryId"/>
<composite-element class="com.tuningfork.student.businessobject.enquiry.StudentCentreTimePreference">
<property name="rank"/>
<many-to-one name="timePreference" class="com.tuningfork.common.businessobject.TimePreference" column="timePreferenceId"/>
<many-to-one name="centrePreference" class="com.tuningfork.common.businessobject.Centre" column="centreId"/>
</composite-element>

</set>

</class>

The mapping for Centre and TimePreference are very simple. Just two properties called id and name. I will post that also if anyone wants to take a look at them too.


Code between sessionFactory.openSession() and session.close():

Full stack trace of any exception that occurs: org.hibernate.exception.SQLGrammarException: could not execute query

Name and version of the database you are using: MYSQL

The generated SQL (show_sql=true):
Hibernate: /* select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId */ select centre3_.Id as col_0_0_, timeprefer6_.Id as col_1_0_, count(distinct studentenr0_.EnquiryId) as col_2_0_ from studentenrollment studentenr0_ studentcentretimepreference centretime2_, CentreMaster centre3_ studentcentretimepreference centretime5_, timepreferencemaster timeprefer6_, studentcentretimepreference centretime8_, studentcentretimepreference centretime11_ where studentenq1_.Id=centretime11_.EnquiryId and studentenq1_.Id=centretime8_.EnquiryId and centretime5_.timePreferenceId=timeprefer6_.Id and studentenq1_.Id=centretime5_.EnquiryId and centretime2_.centreId=centre3_.Id and studentenq1_.Id=centretime2_.EnquiryId and studentenr0_.EnquiryId=studentenq1_.Id group by centre3_.Id , timeprefer6_.Id

Debug level Hibernate log excerpt:

DEBUG [http-8080-Processor24] - Cloning bean: com.tuningfork.report.businessobject.ReportInput
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setEndDate(java.lang.String) with value null (class <null>)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setJoinClause(java.lang.String) with value (class java.lang.String)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setMeasure(java.lang.String) with value count(distinct StudentEnrollment.enquiryId) (class java.lang.String)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setStartDate(java.lang.String) with value null (class <null>)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setType(java.lang.String) with value null (class <null>)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setUnderlying(java.lang.String) with value StudentEnrollment (class java.lang.String)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setWhereClause(java.util.Collection) with value [] (class java.util.ArrayList)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setX(java.lang.String) with value StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId (class java.lang.String)
DEBUG [http-8080-Processor24] - setSimpleProperty: Invoking method public void com.tuningfork.report.businessobject.ReportInput.setY(java.lang.String) with value StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId (class java.lang.String)
DEBUG [http-8080-Processor24] - begin
DEBUG [http-8080-Processor24] - current autocommit status: false
DEBUG [http-8080-Processor24] - USER_NOT_FOUND::class com.tuningfork.common.util.ReportingEngine::getStandardReport::HQL String = select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId
DEBUG [http-8080-Processor24] - USER_NOT_FOUND::class com.tuningfork.common.util.ReportingEngine::getStandardReport::HQL String = select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId
DEBUG [http-8080-Processor24] - find: select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId
DEBUG [http-8080-Processor24] - named parameters: {}
DEBUG [Finalizer] - running Session.finalize()
DEBUG [http-8080-Processor24] - parse() - HQL: select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from com.tuningfork.student.businessobject.enrollment.StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId
DEBUG [http-8080-Processor24] - --- HQL AST ---
\-[QUERY] 'query'
+-[SELECT_FROM] 'SELECT_FROM'
| +-[FROM] 'from'
| | \-[RANGE] 'RANGE'
| | +-[DOT] '.'
| | | +-[DOT] '.'
| | | | +-[DOT] '.'
| | | | | +-[DOT] '.'
| | | | | | +-[DOT] '.'
| | | | | | | +-[IDENT] 'com'
| | | | | | | \-[IDENT] 'tuningfork'
| | | | | | \-[IDENT] 'student'
| | | | | \-[IDENT] 'businessobject'
| | | | \-[IDENT] 'enrollment'
| | | \-[IDENT] 'StudentEnrollment'
| | \-[ALIAS] 'StudentEnrollment'
| \-[SELECT] 'select'
| +-[DOT] '.'
| | +-[DOT] '.'
| | | +-[DOT] '.'
| | | | +-[DOT] '.'
| | | | | +-[IDENT] 'StudentEnrollment'
| | | | | \-[IDENT] 'enquiry'
| | | | \-[IDENT] 'centreTimePreferences'
| | | \-[IDENT] 'centrePreference'
| | \-[IDENT] 'strId'
| +-[DOT] '.'
| | +-[DOT] '.'
| | | +-[DOT] '.'
| | | | +-[DOT] '.'
| | | | | +-[IDENT] 'StudentEnrollment'
| | | | | \-[IDENT] 'enquiry'
| | | | \-[IDENT] 'centreTimePreferences'
| | | \-[IDENT] 'timePreference'
| | \-[IDENT] 'strId'
| \-[COUNT] 'count'
| +-[DISTINCT] 'distinct'
| \-[DOT] '.'
| +-[IDENT] 'StudentEnrollment'
| \-[IDENT] 'enquiryId'
\-[GROUP] 'group'
+-[DOT] '.'
| +-[DOT] '.'
| | +-[DOT] '.'
| | | +-[DOT] '.'
| | | | +-[IDENT] 'StudentEnrollment'
| | | | \-[IDENT] 'enquiry'
| | | \-[IDENT] 'centreTimePreferences'
| | \-[IDENT] 'centrePreference'
| \-[IDENT] 'strId'
\-[DOT] '.'
+-[DOT] '.'
| +-[DOT] '.'
| | +-[DOT] '.'
| | | +-[IDENT] 'StudentEnrollment'
| | | \-[IDENT] 'enquiry'
| | \-[IDENT] 'centreTimePreferences'
| \-[IDENT] 'timePreference'
\-[IDENT] 'strId'

DEBUG [http-8080-Processor24] - throwQueryException() : no errors
DEBUG [http-8080-Processor24] - query() << begin, level = 1
DEBUG [http-8080-Processor24] - FromClause{level=1} : com.tuningfork.student.businessobject.enrollment.StudentEnrollment (StudentEnrollment) -> studentenr0_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : enquiry -> org.hibernate.type.OneToOneType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for enquiry in com.tuningfork.student.businessobject.enrollment.StudentEnrollment {no alias} parent = [ ( . ( . studentenr0_.EnquiryId enquiry ) centreTimePreferences ) ]
DEBUG [http-8080-Processor24] - FromClause{level=1} : com.tuningfork.student.businessobject.enquiry.StudentEnquiry (no alias) -> studentenq1_
DEBUG [http-8080-Processor24] - addJoinByPathMap() : StudentEnrollment.enquiry -> studentenquiry studentenq1_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : centreTimePreferences -> org.hibernate.type.SetType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences)
DEBUG [http-8080-Processor24] - FromClause{level=1} : null (no alias) -> centretime2_
DEBUG [http-8080-Processor24] - addCollectionJoinFromElementByPath() : StudentEnrollment.enquiry.centreTimePreferences -> studentcentretimepreference
DEBUG [http-8080-Processor24] - dereferenceCollection() : Created new FROM element for StudentEnrollment.enquiry.centreTimePreferences : studentcentretimepreference centretime2_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences -> .
DEBUG [http-8080-Processor24] - getDataType() : centrePreference -> org.hibernate.type.ManyToOneType(com.tuningfork.common.businessobject.Centre)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for centrePreference in null {no alias} parent = [ ( . ( . ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) centrePreference ) strId ) ]
DEBUG [http-8080-Processor24] - FromClause{level=1} : com.tuningfork.common.businessobject.Centre (no alias) -> centre3_
DEBUG [http-8080-Processor24] - addJoinByPathMap() : StudentEnrollment.enquiry.centreTimePreferences.centrePreference -> CentreMaster centre3_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.centrePreference -> centretime2_.centreId
DEBUG [http-8080-Processor24] - getDataType() : strId -> org.hibernate.type.StringType@1d4c4b7
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId -> centre3_.Id
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : enquiry -> org.hibernate.type.OneToOneType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for enquiry in com.tuningfork.student.businessobject.enrollment.StudentEnrollment {no alias} parent = [ ( . ( . studentenr0_.EnquiryId enquiry ) centreTimePreferences ) ]
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : centreTimePreferences -> org.hibernate.type.SetType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences)
DEBUG [http-8080-Processor24] - FromClause{level=1} : null (no alias) -> centretime5_
DEBUG [http-8080-Processor24] - addCollectionJoinFromElementByPath() : StudentEnrollment.enquiry.centreTimePreferences -> studentcentretimepreference
DEBUG [http-8080-Processor24] - dereferenceCollection() : Created new FROM element for StudentEnrollment.enquiry.centreTimePreferences : studentcentretimepreference centretime5_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences -> .
DEBUG [http-8080-Processor24] - getDataType() : timePreference -> org.hibernate.type.ManyToOneType(com.tuningfork.common.businessobject.TimePreference)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for timePreference in null {no alias} parent = [ ( . ( . ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) timePreference ) strId ) ]
DEBUG [http-8080-Processor24] - FromClause{level=1} : com.tuningfork.common.businessobject.TimePreference (no alias) -> timeprefer6_
DEBUG [http-8080-Processor24] - addJoinByPathMap() : StudentEnrollment.enquiry.centreTimePreferences.timePreference -> timepreferencemaster timeprefer6_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.timePreference -> centretime5_.timePreferenceId
DEBUG [http-8080-Processor24] - getDataType() : strId -> org.hibernate.type.StringType@1d4c4b7
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId -> timeprefer6_.Id
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : enquiryId -> org.hibernate.type.IntegerType@974e4b
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiryId -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : enquiry -> org.hibernate.type.OneToOneType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for enquiry in com.tuningfork.student.businessobject.enrollment.StudentEnrollment {no alias} parent = [ ( . ( . studentenr0_.EnquiryId enquiry ) centreTimePreferences ) ]
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : centreTimePreferences -> org.hibernate.type.SetType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences)
DEBUG [http-8080-Processor24] - FromClause{level=1} : null (no alias) -> centretime8_
DEBUG [http-8080-Processor24] - addCollectionJoinFromElementByPath() : StudentEnrollment.enquiry.centreTimePreferences -> studentcentretimepreference
DEBUG [http-8080-Processor24] - dereferenceCollection() : Created new FROM element for StudentEnrollment.enquiry.centreTimePreferences : studentcentretimepreference centretime8_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences -> .
DEBUG [http-8080-Processor24] - getDataType() : centrePreference -> org.hibernate.type.ManyToOneType(com.tuningfork.common.businessobject.Centre)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for centrePreference in null {no alias} parent = [ ( . ( . ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) centrePreference ) strId ) ]
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.centrePreference -> centretime8_.centreId
DEBUG [http-8080-Processor24] - getDataType() : strId -> org.hibernate.type.StringType@1d4c4b7
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId -> centre3_.Id
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : enquiry -> org.hibernate.type.OneToOneType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for enquiry in com.tuningfork.student.businessobject.enrollment.StudentEnrollment {no alias} parent = [ ( . ( . studentenr0_.EnquiryId enquiry ) centreTimePreferences ) ]
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry -> studentenr0_.EnquiryId
DEBUG [http-8080-Processor24] - getDataType() : centreTimePreferences -> org.hibernate.type.SetType(com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences)
DEBUG [http-8080-Processor24] - FromClause{level=1} : null (no alias) -> centretime11_
DEBUG [http-8080-Processor24] - addCollectionJoinFromElementByPath() : StudentEnrollment.enquiry.centreTimePreferences -> studentcentretimepreference
DEBUG [http-8080-Processor24] - dereferenceCollection() : Created new FROM element for StudentEnrollment.enquiry.centreTimePreferences : studentcentretimepreference centretime11_
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences -> .
DEBUG [http-8080-Processor24] - getDataType() : timePreference -> org.hibernate.type.ManyToOneType(com.tuningfork.common.businessobject.TimePreference)
DEBUG [http-8080-Processor24] - dereferenceEntityJoin() : generating join for timePreference in null {no alias} parent = [ ( . ( . ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) timePreference ) strId ) ]
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.timePreference -> centretime11_.timePreferenceId
DEBUG [http-8080-Processor24] - getDataType() : strId -> org.hibernate.type.StringType@1d4c4b7
DEBUG [http-8080-Processor24] - Resolved : StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId -> timeprefer6_.Id
DEBUG [http-8080-Processor24] - query() : finishing up , level = 1
DEBUG [http-8080-Processor24] - processQuery() : ( SELECT ( {select clause} ( centre3_.Id ( centretime2_.centreId ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) centrePreference ) strId ) ( timeprefer6_.Id ( centretime5_.timePreferenceId ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) timePreference ) strId ) ( count distinct ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiryId ) ) ) ( FromClause{level=1} ( studentenrollment studentenr0_ ( ( studentcentretimepreference centretime2_ CentreMaster centre3_ ) ( studentcentretimepreference centretime5_ timepreferencemaster timeprefer6_ ) ) ) studentcentretimepreference centretime8_ studentcentretimepreference centretime11_ ) ( group ( centre3_.Id ( centretime8_.centreId ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) centrePreference ) strId ) ( timeprefer6_.Id ( centretime11_.timePreferenceId ( . ( studentenr0_.EnquiryId studentenr0_.EnquiryId enquiry ) centreTimePreferences ) timePreference ) strId ) ) )
DEBUG [http-8080-Processor24] - Using WHERE fragment [studentenq1_.Id=centretime11_.EnquiryId]
DEBUG [http-8080-Processor24] - getWhereClause() : Creating a new WHERE clause...
DEBUG [http-8080-Processor24] - Using WHERE fragment [studentenq1_.Id=centretime8_.EnquiryId]
DEBUG [http-8080-Processor24] - Using WHERE fragment [centretime5_.timePreferenceId=timeprefer6_.Id]
DEBUG [http-8080-Processor24] - Using WHERE fragment [studentenq1_.Id=centretime5_.EnquiryId]
DEBUG [http-8080-Processor24] - Using WHERE fragment [centretime2_.centreId=centre3_.Id]
DEBUG [http-8080-Processor24] - Using WHERE fragment [studentenq1_.Id=centretime2_.EnquiryId]
DEBUG [http-8080-Processor24] - Using WHERE fragment [studentenr0_.EnquiryId=studentenq1_.Id]
DEBUG [http-8080-Processor24] - Using FROM fragment [studentenrollment studentenr0_]
DEBUG [http-8080-Processor24] - query() >> end, level = 1
DEBUG [http-8080-Processor24] - --- SQL AST ---
\-[SELECT] QueryNode: 'SELECT' querySpaces (CentreMaster,timepreferencemaster,studentcentretimepreference,studentenquiry,studentenrollment)
+-[SELECT_CLAUSE] SelectClause: '{select clause}'
| +-[DOT] DotNode: 'centre3_.Id' {propertyName=strId,dereferenceType=4,propertyPath=strId,path=StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,tableAlias=centre3_,className=com.tuningfork.common.businessobject.Centre,classAlias=null}
| | +-[DOT] DotNode: 'centretime2_.centreId' {propertyName=centrePreference,dereferenceType=1,propertyPath=centrePreference,path=StudentEnrollment.enquiry.centreTimePreferences.centrePreference,tableAlias=centre3_,className=com.tuningfork.common.businessobject.Centre,classAlias=null}
| | | +-[DOT] DotNode: '.' {propertyName=centreTimePreferences,dereferenceType=3,propertyPath=centreTimePreferences,path=StudentEnrollment.enquiry.centreTimePreferences,tableAlias=centretime2_,className=null,classAlias=null}
| | | | +-[DOT] DotNode: 'studentenr0_.EnquiryId' {propertyName=enquiry,dereferenceType=1,propertyPath=enquiry,path=StudentEnrollment.enquiry,tableAlias=studentenq1_,className=com.tuningfork.student.businessobject.enquiry.StudentEnquiry,classAlias=null}
| | | | | +-[ALIAS_REF] IdentNode: 'studentenr0_.EnquiryId' {alias=StudentEnrollment, className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment, tableAlias=studentenr0_}
| | | | | \-[IDENT] IdentNode: 'enquiry' {originalText=enquiry}
| | | | \-[IDENT] IdentNode: 'centreTimePreferences' {originalText=centreTimePreferences}
| | | \-[IDENT] IdentNode: 'centrePreference' {originalText=centrePreference}
| | \-[IDENT] IdentNode: 'strId' {originalText=strId}
| +-[SELECT_COLUMNS] SqlNode: ' as col_0_0_'
| +-[DOT] DotNode: 'timeprefer6_.Id' {propertyName=strId,dereferenceType=4,propertyPath=strId,path=StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,tableAlias=timeprefer6_,className=com.tuningfork.common.businessobject.TimePreference,classAlias=null}
| | +-[DOT] DotNode: 'centretime5_.timePreferenceId' {propertyName=timePreference,dereferenceType=1,propertyPath=timePreference,path=StudentEnrollment.enquiry.centreTimePreferences.timePreference,tableAlias=timeprefer6_,className=com.tuningfork.common.businessobject.TimePreference,classAlias=null}
| | | +-[DOT] DotNode: '.' {propertyName=centreTimePreferences,dereferenceType=3,propertyPath=centreTimePreferences,path=StudentEnrollment.enquiry.centreTimePreferences,tableAlias=centretime5_,className=null,classAlias=null}
| | | | +-[DOT] DotNode: 'studentenr0_.EnquiryId' {propertyName=enquiry,dereferenceType=1,propertyPath=enquiry,path=StudentEnrollment.enquiry,tableAlias=studentenq1_,className=com.tuningfork.student.businessobject.enquiry.StudentEnquiry,classAlias=null}
| | | | | +-[ALIAS_REF] IdentNode: 'studentenr0_.EnquiryId' {alias=StudentEnrollment, className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment, tableAlias=studentenr0_}
| | | | | \-[IDENT] IdentNode: 'enquiry' {originalText=enquiry}
| | | | \-[IDENT] IdentNode: 'centreTimePreferences' {originalText=centreTimePreferences}
| | | \-[IDENT] IdentNode: 'timePreference' {originalText=timePreference}
| | \-[IDENT] IdentNode: 'strId' {originalText=strId}
| +-[SELECT_COLUMNS] SqlNode: ' as col_1_0_'
| +-[COUNT] CountNode: 'count'
| | +-[DISTINCT] SqlNode: 'distinct'
| | \-[DOT] DotNode: 'studentenr0_.EnquiryId' {propertyName=enquiryId,dereferenceType=4,propertyPath=enquiryId,path=StudentEnrollment.enquiryId,tableAlias=studentenr0_,className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment,classAlias=StudentEnrollment}
| | +-[ALIAS_REF] IdentNode: 'studentenr0_.EnquiryId' {alias=StudentEnrollment, className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment, tableAlias=studentenr0_}
| | \-[IDENT] IdentNode: 'enquiryId' {originalText=enquiryId}
| \-[SELECT_COLUMNS] SqlNode: ' as col_2_0_'
+-[FROM] FromClause: 'from' FromClause{level=1, fromElementCounter=4, fromElements=8, fromElementByClassAlias=[null, StudentEnrollment], fromElementByTableAlias=[centre3_, centretime11_, centretime5_, studentenr0_, centretime8_, centretime2_, timeprefer6_, studentenq1_], fromElementsByPath=[StudentEnrollment.enquiry.centreTimePreferences.centrePreference, StudentEnrollment.enquiry, StudentEnrollment.enquiry.centreTimePreferences.timePreference], collectionJoinFromElementsByPath=[StudentEnrollment.enquiry.centreTimePreferences], impliedElements=[]}
| +-[FROM_FRAGMENT] FromElement: 'studentenrollment studentenr0_' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=StudentEnrollment,role=null,tableName=studentenrollment,tableAlias=studentenr0_,colums={,className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment}}
| | \-[FROM_FRAGMENT] ImpliedFromElement: '' ImpliedFromElement{implied,collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName=studentenquiry,tableAlias=studentenq1_,colums={studentenr0_.EnquiryId ,className=com.tuningfork.student.businessobject.enquiry.StudentEnquiry}}
| | +-[FROM_FRAGMENT] ImpliedFromElement: 'studentcentretimepreference centretime2_' ImpliedFromElement{implied,collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences,tableName={none},tableAlias=centretime2_,colums={,className=null}}
| | | \-[FROM_FRAGMENT] ImpliedFromElement: 'CentreMaster centre3_' ImpliedFromElement{implied,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName=CentreMaster,tableAlias=centre3_,colums={centretime2_.centreId ,className=com.tuningfork.common.businessobject.Centre}}
| | \-[FROM_FRAGMENT] ImpliedFromElement: 'studentcentretimepreference centretime5_' ImpliedFromElement{implied,collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences,tableName={none},tableAlias=centretime5_,colums={,className=null}}
| | \-[FROM_FRAGMENT] ImpliedFromElement: 'timepreferencemaster timeprefer6_' ImpliedFromElement{implied,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName=timepreferencemaster,tableAlias=timeprefer6_,colums={centretime5_.timePreferenceId ,className=com.tuningfork.common.businessobject.TimePreference}}
| +-[FROM_FRAGMENT] ImpliedFromElement: 'studentcentretimepreference centretime8_' ImpliedFromElement{implied,collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences,tableName={none},tableAlias=centretime8_,colums={,className=null}}
| \-[FROM_FRAGMENT] ImpliedFromElement: 'studentcentretimepreference centretime11_' ImpliedFromElement{implied,collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=com.tuningfork.student.businessobject.enquiry.StudentEnquiry.centreTimePreferences,tableName={none},tableAlias=centretime11_,colums={,className=null}}
+-[WHERE] SqlNode: 'WHERE'
| \-[THETA_JOINS] SqlNode: '{theta joins}'
| +-[SQL_TOKEN] SqlFragment: 'studentenq1_.Id=centretime11_.EnquiryId'
| +-[SQL_TOKEN] SqlFragment: 'studentenq1_.Id=centretime8_.EnquiryId'
| +-[SQL_TOKEN] SqlFragment: 'centretime5_.timePreferenceId=timeprefer6_.Id'
| +-[SQL_TOKEN] SqlFragment: 'studentenq1_.Id=centretime5_.EnquiryId'
| +-[SQL_TOKEN] SqlFragment: 'centretime2_.centreId=centre3_.Id'
| +-[SQL_TOKEN] SqlFragment: 'studentenq1_.Id=centretime2_.EnquiryId'
| \-[SQL_TOKEN] SqlFragment: 'studentenr0_.EnquiryId=studentenq1_.Id'
\-[GROUP] SqlNode: 'group'
+-[DOT] DotNode: 'centre3_.Id' {propertyName=strId,dereferenceType=4,propertyPath=strId,path=StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,tableAlias=centre3_,className=com.tuningfork.common.businessobject.Centre,classAlias=null}
| +-[DOT] DotNode: 'centretime8_.centreId' {propertyName=centrePreference,dereferenceType=1,propertyPath=centrePreference,path=StudentEnrollment.enquiry.centreTimePreferences.centrePreference,tableAlias=centre3_,className=com.tuningfork.common.businessobject.Centre,classAlias=null}
| | +-[DOT] DotNode: '.' {propertyName=centreTimePreferences,dereferenceType=3,propertyPath=centreTimePreferences,path=StudentEnrollment.enquiry.centreTimePreferences,tableAlias=centretime8_,className=null,classAlias=null}
| | | +-[DOT] DotNode: 'studentenr0_.EnquiryId' {propertyName=enquiry,dereferenceType=1,propertyPath=enquiry,path=StudentEnrollment.enquiry,tableAlias=studentenq1_,className=com.tuningfork.student.businessobject.enquiry.StudentEnquiry,classAlias=null}
| | | | +-[ALIAS_REF] IdentNode: 'studentenr0_.EnquiryId' {alias=StudentEnrollment, className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment, tableAlias=studentenr0_}
| | | | \-[IDENT] IdentNode: 'enquiry' {originalText=enquiry}
| | | \-[IDENT] IdentNode: 'centreTimePreferences' {originalText=centreTimePreferences}
| | \-[IDENT] IdentNode: 'centrePreference' {originalText=centrePreference}
| \-[IDENT] IdentNode: 'strId' {originalText=strId}
\-[DOT] DotNode: 'timeprefer6_.Id' {propertyName=strId,dereferenceType=4,propertyPath=strId,path=StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,tableAlias=timeprefer6_,className=com.tuningfork.common.businessobject.TimePreference,classAlias=null}
+-[DOT] DotNode: 'centretime11_.timePreferenceId' {propertyName=timePreference,dereferenceType=1,propertyPath=timePreference,path=StudentEnrollment.enquiry.centreTimePreferences.timePreference,tableAlias=timeprefer6_,className=com.tuningfork.common.businessobject.TimePreference,classAlias=null}
| +-[DOT] DotNode: '.' {propertyName=centreTimePreferences,dereferenceType=3,propertyPath=centreTimePreferences,path=StudentEnrollment.enquiry.centreTimePreferences,tableAlias=centretime11_,className=null,classAlias=null}
| | +-[DOT] DotNode: 'studentenr0_.EnquiryId' {propertyName=enquiry,dereferenceType=1,propertyPath=enquiry,path=StudentEnrollment.enquiry,tableAlias=studentenq1_,className=com.tuningfork.student.businessobject.enquiry.StudentEnquiry,classAlias=null}
| | | +-[ALIAS_REF] IdentNode: 'studentenr0_.EnquiryId' {alias=StudentEnrollment, className=com.tuningfork.student.businessobject.enrollment.StudentEnrollment, tableAlias=studentenr0_}
| | | \-[IDENT] IdentNode: 'enquiry' {originalText=enquiry}
| | \-[IDENT] IdentNode: 'centreTimePreferences' {originalText=centreTimePreferences}
| \-[IDENT] IdentNode: 'timePreference' {originalText=timePreference}
\-[IDENT] IdentNode: 'strId' {originalText=strId}

DEBUG [http-8080-Processor24] - throwQueryException() : no errors
DEBUG [http-8080-Processor24] - HQL: select StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId,count(distinct StudentEnrollment.enquiryId) from com.tuningfork.student.businessobject.enrollment.StudentEnrollment as StudentEnrollment group by StudentEnrollment.enquiry.centreTimePreferences.centrePreference.strId,StudentEnrollment.enquiry.centreTimePreferences.timePreference.strId
DEBUG [http-8080-Processor24] - SQL: select centre3_.Id as col_0_0_, timeprefer6_.Id as col_1_0_, count(distinct studentenr0_.EnquiryId) as col_2_0_ from studentenrollment studentenr0_ studentcentretimepreference centretime2_, CentreMaster centre3_ studentcentretimepreference centretime5_, timepreferencemaster timeprefer6_, studentcentretimepreference centretime8_, studentcentretimepreference centretime11_ where studentenq1_.Id=centretime11_.EnquiryId and studentenq1_.Id=centretime8_.EnquiryId and centretime5_.timePreferenceId=timeprefer6_.Id and studentenq1_.Id=centretime5_.EnquiryId and centretime2_.centreId=centre3_.Id and studentenq1_.Id=centretime2_.EnquiryId and studentenr0_.EnquiryId=studentenq1_.Id group by centre3_.Id , timeprefer6_.Id
DEBUG [http-8080-Processor24] - throwQueryException() : no errors
DEBUG [http-8080-Processor24] - flushing session
DEBUG [http-8080-Processor24] - processing flush-time cascades
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.User
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.User.roleMaps
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.User.roleMaps
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.User
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Role
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Role.resourceRoleMaps
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Role.resourceRoleMaps
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Role
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#-2]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#1]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#4]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#2]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#3]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#-3]
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#101]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#102]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#103]
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#401]
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#201]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#202]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#203]
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#204]
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - cascading to saveOrUpdate: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - persistent instance of: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - ignoring persistent instance
DEBUG [http-8080-Processor24] - object already associated with session: [com.tuningfork.ums.businessobject.Resource#301]
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.ums.businessobject.Resource.subResources
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.ums.businessobject.Resource
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.degrees
DEBUG [http-8080-Processor24] - cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done cascade ACTION_SAVE_UPDATE for collection: com.tuningfork.student.businessobject.DegreeType.colleges
DEBUG [http-8080-Processor24] - done processing cascade ACTION_SAVE_UPDATE for: com.tuningfork.student.businessobject.DegreeType
DEBUG [http-8080-Processor24] - dirty checking collections
DEBUG [http-8080-Processor24] - Flushing entities and processing referenced collections
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.User.roleMaps#1], was: [com.tuningfork.ums.businessobject.User.roleMaps#1] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Role.resourceRoleMaps#-1], was: [com.tuningfork.ums.businessobject.Role.resourceRoleMaps#-1] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#-1], was: [com.tuningfork.ums.businessobject.Resource.subResources#-1] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#-2], was: [com.tuningfork.ums.businessobject.Resource.subResources#-2] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#1], was: [com.tuningfork.ums.businessobject.Resource.subResources#1] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#4], was: [com.tuningfork.ums.businessobject.Resource.subResources#4] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#2], was: [com.tuningfork.ums.businessobject.Resource.subResources#2] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#3], was: [com.tuningfork.ums.businessobject.Resource.subResources#3] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#-3], was: [com.tuningfork.ums.businessobject.Resource.subResources#-3] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#101], was: [com.tuningfork.ums.businessobject.Resource.subResources#101] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#102], was: [com.tuningfork.ums.businessobject.Resource.subResources#102] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#103], was: [com.tuningfork.ums.businessobject.Resource.subResources#103] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#401], was: [com.tuningfork.ums.businessobject.Resource.subResources#401] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#201], was: [com.tuningfork.ums.businessobject.Resource.subResources#201] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#202], was: [com.tuningfork.ums.businessobject.Resource.subResources#202] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#203], was: [com.tuningfork.ums.businessobject.Resource.subResources#203] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#204], was: [com.tuningfork.ums.businessobject.Resource.subResources#204] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.ums.businessobject.Resource.subResources#301], was: [com.tuningfork.ums.businessobject.Resource.subResources#301] (initialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#-1], was: [com.tuningfork.common.businessobject.Centre.locations#-1] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#7], was: [com.tuningfork.common.businessobject.Centre.locations#7] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#2], was: [com.tuningfork.common.businessobject.Centre.locations#2] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#1], was: [com.tuningfork.common.businessobject.Centre.locations#1] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#5], was: [com.tuningfork.common.businessobject.Centre.locations#5] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#3], was: [com.tuningfork.common.businessobject.Centre.locations#3] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#4], was: [com.tuningfork.common.businessobject.Centre.locations#4] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Centre.locations#6], was: [com.tuningfork.common.businessobject.Centre.locations#6] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.degrees#1], was: [com.tuningfork.student.businessobject.DegreeType.degrees#1] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.colleges#1], was: [com.tuningfork.student.businessobject.DegreeType.colleges#1] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.degrees#2], was: [com.tuningfork.student.businessobject.DegreeType.degrees#2] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.colleges#2], was: [com.tuningfork.student.businessobject.DegreeType.colleges#2] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.degrees#3], was: [com.tuningfork.student.businessobject.DegreeType.degrees#3] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.colleges#3], was: [com.tuningfork.student.businessobject.DegreeType.colleges#3] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.degrees#4], was: [com.tuningfork.student.businessobject.DegreeType.degrees#4] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.student.businessobject.DegreeType.colleges#4], was: [com.tuningfork.student.businessobject.DegreeType.colleges#4] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#14], was: [com.tuningfork.common.businessobject.Course.batches#14] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#1], was: [com.tuningfork.common.businessobject.Course.batches#1] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#8], was: [com.tuningfork.common.businessobject.Course.batches#8] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#12], was: [com.tuningfork.common.businessobject.Course.batches#12] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#13], was: [com.tuningfork.common.businessobject.Course.batches#13] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#2], was: [com.tuningfork.common.businessobject.Course.batches#2] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#11], was: [com.tuningfork.common.businessobject.Course.batches#11] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#4], was: [com.tuningfork.common.businessobject.Course.batches#4] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#5], was: [com.tuningfork.common.businessobject.Course.batches#5] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#7], was: [com.tuningfork.common.businessobject.Course.batches#7] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#6], was: [com.tuningfork.common.businessobject.Course.batches#6] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#9], was: [com.tuningfork.common.businessobject.Course.batches#9] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#10], was: [com.tuningfork.common.businessobject.Course.batches#10] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#3], was: [com.tuningfork.common.businessobject.Course.batches#3] (uninitialized)
DEBUG [http-8080-Processor24] - Collection found: [com.tuningfork.common.businessobject.Course.batches#15], was: [com.tuningfork.common.businessobject.Course.batches#15] (uninitialized)
DEBUG [http-8080-Processor24] - Processing unreferenced collections
DEBUG [http-8080-Processor24] - Scheduling collection removes/(re)creates/updates
DEBUG [http-8080-Processor24] - Flushed: 0 insertions, 0 updates, 0 deletions to 45 objects
DEBUG [http-8080-Processor24] - Flushed: 0 (re)creations, 0 updates, 0 removals to 49 collections
DEBUG [http-8080-Processor24] - listing entities:
DEBUG [http-8080-Processor24] - com.tuningfork.ums.businessobject.Resource{menuDisplayName=Course Management, subResources=[], remarks=, menuLink=courseDatagrid.do?reqCode=display, name=Course, id=202}
DEBUG [http-8080-Processor24] - com.tuningfork.student.businessobject.DegreeType{colleges=<uninitialized>, degrees=<uninitialized>, name=Tenth, id=1}
DEBUG [http-8080-Processor24] - com.tuningfork.common.businessobject.Centre{remarks=null, strId=7, name=Indira Nagar, city=com.tuningfork.common.businessobject.City#2, id=7, locations=<uninitialized>}
DEBUG [http-8080-Processor24] - com.tuningfork.common.b


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 26, 2006 11:43 pm 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
This is a known issue. It's even worse when you're using Criteria. I'd quote you the JIRA number but atlassian is down at the moment.

Your set mapping is very easily changed from a composite-element to normal entity collection. You just have to add a mapping for StudentCentreTimePreference and use it from StudentEnquiry's mapping to make the problem go away.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 28, 2006 2:35 am 
Newbie

Joined: Wed Oct 12, 2005 4:39 pm
Posts: 15
Location: India
I assume you mean to use one-to-many mapping instead?
I will try that.

And is there a way to know a timeline by which the "hql with component mapping defect" and "NPE with more than certain depth of joins" would be "closed" :-)

The second defect does not appear in 3.0.5 but 3.1.X manifests it.


Thanks.
Best Regards,
Raghu


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 28, 2006 5:20 pm 
Expert
Expert

Joined: Thu Dec 23, 2004 9:08 pm
Posts: 2008
Kinda.. I actually meant to map StudentCentreTimePreference as a class, instead of as a composite-element. De-inline it, as it were. The eventual mapping would probably look something like
Code:
<class name="StudentEnquiry" ...>
  ...
  <set name="centreTimePeferences" ...>
    <key ...>
    <one-to-many class="StudentCentreTimePreference"/>
  </set>
  ...
</class>
<class name="StudentCentreTimePreference" ...>
  ...
   <many-to-one name="timePreference" class="TimePreference" column="timePreferenceId"/>
   <many-to-one name="centrePreference" class="Centre" column="centreId"/>
  ...
</class>


I have no clue about timelines for bugfixes, sorry.


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.