Two classes: Template and parameter: One-to-least
Test code:
Querytemplate template = new querytemplate ();
Template. setlabel ("test template label ");
Template. setname ("test Template Name ");
Queryenginedao. Save (Template );
The code in SAVE () is: Transaction tan = session. begintransaction ();
Session. Save (Template );
Session. Flush ();
Tan. Commit ();
If the template defines: Private collection queyparameters =New arraylist ();An error is returned:
Enter com. HP. Dragon. util. queryenginedao save () and the OBJ's class is: COM. HP. Dragon. model. querytemplate
Exception in thread "Main" org. hibernate. propertyaccessexception: illegalargumentexception occurred calling getter of COM. HP. Dragon. model. templateparameter. ID
At org. hibernate. Property. basicpropertyaccessor $ basicgetter. Get (basicpropertyaccessor. Java: 119)
At org. hibernate. tuple. abstracttuplizer. getidentifier (abstracttuplizer. Java: 103)
At org. hibernate. persister. entity. basicentitypersister. getidentifier (basicentitypersister. Java: 2944)
At org. hibernate. persister. entity. basicentitypersister. istransient (basicentitypersister. Java: 2705)
At org. hibernate. Engine. foreignkeys. istransient (foreignkeys. Java: 181)
At org. hibernate. event. Def. abstractsaveeventlistener. getentitystate (abstractsaveeventlistener. Java: 409)
At org. hibernate. event. Def. defaultsaveorupdateeventlistener. performsaveorupdate (defaultsaveorupdateeventlistener. Java: 82)
At org. hibernate. event. Def. defaultsaveorupdateeventlistener. onsaveorupdate (defaultsaveorupdateeventlistener. Java: 69)
At org. hibernate. impl. sessionimpl. saveorupdate (sessionimpl. Java: 468)
At org. hibernate. Engine. Cascades $5. Cascade (Cascades. Java: 154)
At org. hibernate. Engine. Cascades. cascadeassociation (Cascades. Java: 771)
At org. hibernate. Engine. Cascades. Cascade (Cascades. Java: 720)
At org. hibernate. Engine. Cascades. Cascade (Cascades. Java: 847)
At org. hibernate. event. Def. abstractsaveeventlistener. cascadebeforesave (abstractsaveeventlistener. Java: 332)
At org. hibernate. event. Def. abstractsaveeventlistener. descrimsaveorreplicate (abstractsaveeventlistener. Java: 214)
At org. hibernate. event. Def. abstractsaveeventlistener. abstrmsave (abstractsaveeventlistener. Java: 160)
At org. hibernate. event. Def. abstractsaveeventlistener. savewithgeneratedid (abstractsaveeventlistener. Java: 108)
At org. hibernate. event. Def. defaultsaveorupdateeventlistener. savewithgeneratedorrequestedid (defaultsaveorupdateeventlistener. Java: 184)
At org. hibernate. event. Def. defaultsaveeventlistener. savewithgeneratedorrequestedid (defaultsaveeventlistener. Java: 33)
At org. hibernate. event. Def. defaultsaveorupdateeventlistener. entityistransient (defaultsaveorupdateeventlistener. Java: 173)
At org. hibernate. event. Def. defaultsaveeventlistener. performsaveorupdate (defaultsaveeventlistener. Java: 27)
At org. hibernate. event. Def. defaultsaveorupdateeventlistener. onsaveorupdate (defaultsaveorupdateeventlistener. Java: 69)
At org. hibernate. impl. sessionimpl. Save (sessionimpl. Java: 481)
At org. hibernate. impl. sessionimpl. Save (sessionimpl. Java: 476)
At com. HP. Dragon. util. queryenginedao. Save (queryenginedao. Java: 54)
At com. HP. Dragon. Test. testtool. initquery (testtool. Java: 41)
At com. HP. Siu. Collector. datastore. RISS. Test. testthread. Run (testthread. Java: 27)
At com. HP. Dragon. Test. testrissqueryengine. Main (testrissqueryengine. Java: 17)
Caused by: Java. Lang. illegalargumentexception: object is not an instance of declaring class
At sun. Reflect. nativemethodaccessorimpl. invoke0 (native method)
At sun. Reflect. nativemethodaccessorimpl. Invoke (unknown source)
At sun. Reflect. delegatingmethodaccessorimpl. Invoke (unknown source)
At java. Lang. Reflect. method. Invoke (unknown source)
At org. hibernate. Property. basicpropertyaccessor $ basicgetter. Get (basicpropertyaccessor. Java: 105)
... 27 more
If you changePrivate collection queyparameters-do not initialize this collectiion, then OK.
The Mapping File is generated using XDoclet:
<Role-to-one
Name = "templateparameters"
Class = "com. HP. Dragon. model. templateparameter"
Column = "search_type_id"
Cascade = "NONE"
>
</Role-to-one>