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
|