Hi Frank,

> so the "proxy loader" loads only the interface
> with its values and not the whole classB
> 
> is it possible to load dynamically all required classB elements
> and not only the interfaces ?

think you have to write an Interface for B class
too - e.g. interface BC extends C.
'proxy classes' base on declared interfaces, in your
case only on Interface C. 

regards,
Armin


----- Original Message ----- 
From: "Frank Rub" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, July 25, 2003 2:22 PM
Subject: Problem using dynamic proxy for lazy loading


> Hi all,
> 
> I have a Proxy loading problem:
> 
> I have two classes "classA" and "classB" 
> which do have a 1:n relation
> 
> my repository
>    <class-descriptor class="com.jmedia.map.entryForm.InterfaceC">
>       <extent-class class-ref="com.jmedia.map.entryForm.ClassA" />
>       <extent-class class-ref="com.jmedia.map.entryForm.ClassB" />
>    </class-descriptor>
> 
>    <class-descriptor
>      class="classA"
>      table="A_Table"
>    >
>    ...
>    ...
>       <collection-descriptor
>          name="ClassBCollection"
>          element-class-ref="classB"
>          auto-retreive="true"
>          auto-update="true"
>          auto-delete="true"
>          orderby="id"
>          sort="DESC"
>       >
>          <inverse-foreignkey field-ref="classAId"/>
>       </collection-descriptor>
>          
>    </classDescriptior>
> 
> 
>    <class-descriptor
>      class="classB"
>           proxy="dynamic"
>      table="B_Table"
>    >
>       <field-descriptor
>          name="classAId"
>          column="classAId"
>          jdbc-type="INTEGER"
>       /> 
>       ...
>       ...
>    </classDescriptior>
> 
> 
> my java code :-)   
> 
> interface interfaceC
> {
> get **
> set **
> }
> 
> class classA extends interfaceC
> {
> get **
> set **
> Collection getClassBCollection();
> }
> 
> class classB extends interfaceC
> {
> get **
> set **
> }
> 
> because "class B" is about 30.000 times in "classA" collection
> for me it's important to use "lazy loading" because
> I only need about 100-500 items from "class B" at one time.
> 
> and it works fine
> Collection myColl = classA.getClassBCollection();
> 
> But if I try to get one Element, and try to cast it to "classB"
> classB myclassB = (classB)myColl.next();
> it throws a class cast exception
> only if I cast to the Interface (InterfaceC) everthing works fine
> 
> so the "proxy loader" loads only the interface
> with its values and not the whole classB
> 
> is it possible to load dynamically all required classB elements
> and not only the interfaces ?
> 
> 
> thank you in advance.
> Frank
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to