You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Mauricio Montblanch <mm...@uragua.com.uy> on 2004/03/19 15:54:09 UTC
Newbie Proxy problem
Hi I am trying to use a dynamic proxy in a 1:n relation (loading a list)
but a I can 't figure out how make it work (I get a
java.lang.ClassCastException when I try to get the any object), can
anyone give me a simple example of how to use a dynamic proxy.
Detail
Clases:
Product
InterfaceProduct (Interface)
ProductGroup (contains List products)
XML:
<class-descriptor class="Product" proxy="dynamic" table="PRODUCT">
..............
<class-descriptor class="ProductGroup" table="PRODUCTGROUP">
.....
.....
<collection-descriptor name="products" element-class-ref="Product">
<inverse-foreignkey field-ref="idProductGroup"/>
</collection-descriptor>
so, when y get a product Group y get a list of products filled with
objects of the type (InterfaceProduct)
and I can say
InterfaceProduct i=(InterfaceProduct) ptoducts.get(0);
without errors
but how I can materialize the Product Object ????????
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Newbie Proxy problem
Posted by Edson Carlos Ericksson Richter <ed...@mgrinformatica.com.br>.
Of course, I forget to metion the mandatory interfaces:
public interface TestAIF {
}
public interface TestBIF {
}
then
public class TestA implements TestAIF {
}
public class TestB implements TestBIF {
}
Best regards,
Edson Richter
----- Original Message -----
From: Edson Carlos Ericksson Richter
To: OJB Users List
Sent: Tuesday, March 23, 2004 3:48 PM
Subject: Re: Newbie Proxy problem
I'll try to do show in a sample:
public class TestA {
public int idA;
public java.util.List allB;
}
public class TestB {
public int idB;
public int idReferenceToA;
public TestA referenceToA;
}
in XML:
<class-descriptor
class="TestA"
proxy="dynamic"
table="TB_A">
<field-descriptor
name="idA"
column="ID_A"
primarykey="true"
jdbc-type="Integer"/>
<collection-descriptor
name="allB"
collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList
"
element-class-ref="TestB"
proxy="true"
auto-update="false"
auto-delete="false"/>
<inverse-foreignkey
field-ref="idReferenceToA"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor
class="TestB"
proxy="dynamic"
table="TB_B">
<field-descriptor
name="idB"
column="ID_B"
primarykey="true"
jdbc-type="Integer"/>
<field-descriptor
name="idReferenceToA"
column="ID_A"
primarykey="true"
jdbc-type="Integer"/>
<reference-descriptor
name="referenceToA"
proxy="true"
class-ref="TestA">
<foreignkey field-ref="idReferenceToA"/>
</reference-descriptor>
</class-descriptor>
I get this sample from my projects (just changed the field/table/bean names,
and simplified the beans). This works fine (may be I made some typo when
changing names, so this sample could/couldn't run as is). But the main ideia
is there.
If you are using JavaBeans like acessors (like I do), don't forget to
implement getter/setters for your objects.
Best regards,
Edson Richter
----- Original Message -----
From: Mauricio Montblanch
To: OJB Users List
Sent: Tuesday, March 23, 2004 3:16 PM
Subject: Re: Newbie Proxy problem
Nop, it did not work, have you any example ????????????
Edson Carlos Ericksson Richter wrote:
>As far as you have explained, you should not get ClassCastException.
>First let's go analize your code:
>
>1) Product implements InterfaceProduct.
>2) ProductGroup have a products list. Ok, have you set the
collection-class in the collection-descriptor to ManageableArrayList? If you
have not, do it, because default is RemovalAwareCollection (you can't make
cast from Collection to List, or you will get ClassCastException).
>
>Without more details is hard to give you better ideais about what's can
be going wrong.
>
>Best regards,
>
>Edson Richter
>
> ----- Original Message -----
> From: Mauricio Montblanch
> To: OJB Users List
> Sent: Friday, March 19, 2004 11:54 AM
> Subject: Newbie Proxy problem
>
>
> Hi I am trying to use a dynamic proxy in a 1:n relation (loading a
list)
> but a I can 't figure out how make it work (I get a
> java.lang.ClassCastException when I try to get the any object), can
> anyone give me a simple example of how to use a dynamic proxy.
>
> Detail
>
> Clases:
>
> Product
> InterfaceProduct (Interface)
> ProductGroup (contains List products)
>
> XML:
> <class-descriptor class="Product" proxy="dynamic" table="PRODUCT">
> ..............
> <class-descriptor class="ProductGroup" table="PRODUCTGROUP">
> .....
> .....
> <collection-descriptor name="products" element-class-ref="Product">
> <inverse-foreignkey field-ref="idProductGroup"/>
> </collection-descriptor>
>
> so, when y get a product Group y get a list of products filled with
> objects of the type (InterfaceProduct)
>
> and I can say
>
> InterfaceProduct i=(InterfaceProduct) ptoducts.get(0);
> without errors
>
> but how I can materialize the Product Object ????????
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.624 / Virus Database: 401 - Release Date: 15/3/2004
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.637 / Virus Database: 408 - Release Date: 20/3/2004
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.637 / Virus Database: 408 - Release Date: 20/3/2004
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Newbie Proxy problem
Posted by Edson Carlos Ericksson Richter <ed...@mgrinformatica.com.br>.
I'll try to do show in a sample:
public class TestA {
public int idA;
public java.util.List allB;
}
public class TestB {
public int idB;
public int idReferenceToA;
public TestA referenceToA;
}
in XML:
<class-descriptor
class="TestA"
proxy="dynamic"
table="TB_A">
<field-descriptor
name="idA"
column="ID_A"
primarykey="true"
jdbc-type="Integer"/>
<collection-descriptor
name="allB"
collection-class="org.apache.ojb.broker.util.collections.ManageableArrayList"
element-class-ref="TestB"
proxy="true"
auto-update="false"
auto-delete="false"/>
<inverse-foreignkey
field-ref="idReferenceToA"/>
</collection-descriptor>
</class-descriptor>
<class-descriptor
class="TestB"
proxy="dynamic"
table="TB_B">
<field-descriptor
name="idB"
column="ID_B"
primarykey="true"
jdbc-type="Integer"/>
<field-descriptor
name="idReferenceToA"
column="ID_A"
primarykey="true"
jdbc-type="Integer"/>
<reference-descriptor
name="referenceToA"
proxy="true"
class-ref="TestA">
<foreignkey field-ref="idReferenceToA"/>
</reference-descriptor>
</class-descriptor>
I get this sample from my projects (just changed the field/table/bean names, and simplified the beans). This works fine (may be I made some typo when changing names, so this sample could/couldn't run as is). But the main ideia is there.
If you are using JavaBeans like acessors (like I do), don't forget to implement getter/setters for your objects.
Best regards,
Edson Richter
----- Original Message -----
From: Mauricio Montblanch
To: OJB Users List
Sent: Tuesday, March 23, 2004 3:16 PM
Subject: Re: Newbie Proxy problem
Nop, it did not work, have you any example ????????????
Edson Carlos Ericksson Richter wrote:
>As far as you have explained, you should not get ClassCastException.
>First let's go analize your code:
>
>1) Product implements InterfaceProduct.
>2) ProductGroup have a products list. Ok, have you set the collection-class in the collection-descriptor to ManageableArrayList? If you have not, do it, because default is RemovalAwareCollection (you can't make cast from Collection to List, or you will get ClassCastException).
>
>Without more details is hard to give you better ideais about what's can be going wrong.
>
>Best regards,
>
>Edson Richter
>
> ----- Original Message -----
> From: Mauricio Montblanch
> To: OJB Users List
> Sent: Friday, March 19, 2004 11:54 AM
> Subject: Newbie Proxy problem
>
>
> Hi I am trying to use a dynamic proxy in a 1:n relation (loading a list)
> but a I can 't figure out how make it work (I get a
> java.lang.ClassCastException when I try to get the any object), can
> anyone give me a simple example of how to use a dynamic proxy.
>
> Detail
>
> Clases:
>
> Product
> InterfaceProduct (Interface)
> ProductGroup (contains List products)
>
> XML:
> <class-descriptor class="Product" proxy="dynamic" table="PRODUCT">
> ..............
> <class-descriptor class="ProductGroup" table="PRODUCTGROUP">
> .....
> .....
> <collection-descriptor name="products" element-class-ref="Product">
> <inverse-foreignkey field-ref="idProductGroup"/>
> </collection-descriptor>
>
> so, when y get a product Group y get a list of products filled with
> objects of the type (InterfaceProduct)
>
> and I can say
>
> InterfaceProduct i=(InterfaceProduct) ptoducts.get(0);
> without errors
>
> but how I can materialize the Product Object ????????
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.624 / Virus Database: 401 - Release Date: 15/3/2004
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.637 / Virus Database: 408 - Release Date: 20/3/2004
Re: Newbie Proxy problem
Posted by Mauricio Montblanch <mm...@uragua.com.uy>.
Nop, it did not work, have you any example ????????????
Edson Carlos Ericksson Richter wrote:
>As far as you have explained, you should not get ClassCastException.
>First let's go analize your code:
>
>1) Product implements InterfaceProduct.
>2) ProductGroup have a products list. Ok, have you set the collection-class in the collection-descriptor to ManageableArrayList? If you have not, do it, because default is RemovalAwareCollection (you can't make cast from Collection to List, or you will get ClassCastException).
>
>Without more details is hard to give you better ideais about what's can be going wrong.
>
>Best regards,
>
>Edson Richter
>
> ----- Original Message -----
> From: Mauricio Montblanch
> To: OJB Users List
> Sent: Friday, March 19, 2004 11:54 AM
> Subject: Newbie Proxy problem
>
>
> Hi I am trying to use a dynamic proxy in a 1:n relation (loading a list)
> but a I can 't figure out how make it work (I get a
> java.lang.ClassCastException when I try to get the any object), can
> anyone give me a simple example of how to use a dynamic proxy.
>
> Detail
>
> Clases:
>
> Product
> InterfaceProduct (Interface)
> ProductGroup (contains List products)
>
> XML:
> <class-descriptor class="Product" proxy="dynamic" table="PRODUCT">
> ..............
> <class-descriptor class="ProductGroup" table="PRODUCTGROUP">
> .....
> .....
> <collection-descriptor name="products" element-class-ref="Product">
> <inverse-foreignkey field-ref="idProductGroup"/>
> </collection-descriptor>
>
> so, when y get a product Group y get a list of products filled with
> objects of the type (InterfaceProduct)
>
> and I can say
>
> InterfaceProduct i=(InterfaceProduct) ptoducts.get(0);
> without errors
>
> but how I can materialize the Product Object ????????
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.624 / Virus Database: 401 - Release Date: 15/3/2004
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Newbie Proxy problem
Posted by Edson Carlos Ericksson Richter <ed...@mgrinformatica.com.br>.
As far as you have explained, you should not get ClassCastException.
First let's go analize your code:
1) Product implements InterfaceProduct.
2) ProductGroup have a products list. Ok, have you set the collection-class in the collection-descriptor to ManageableArrayList? If you have not, do it, because default is RemovalAwareCollection (you can't make cast from Collection to List, or you will get ClassCastException).
Without more details is hard to give you better ideais about what's can be going wrong.
Best regards,
Edson Richter
----- Original Message -----
From: Mauricio Montblanch
To: OJB Users List
Sent: Friday, March 19, 2004 11:54 AM
Subject: Newbie Proxy problem
Hi I am trying to use a dynamic proxy in a 1:n relation (loading a list)
but a I can 't figure out how make it work (I get a
java.lang.ClassCastException when I try to get the any object), can
anyone give me a simple example of how to use a dynamic proxy.
Detail
Clases:
Product
InterfaceProduct (Interface)
ProductGroup (contains List products)
XML:
<class-descriptor class="Product" proxy="dynamic" table="PRODUCT">
..............
<class-descriptor class="ProductGroup" table="PRODUCTGROUP">
.....
.....
<collection-descriptor name="products" element-class-ref="Product">
<inverse-foreignkey field-ref="idProductGroup"/>
</collection-descriptor>
so, when y get a product Group y get a list of products filled with
objects of the type (InterfaceProduct)
and I can say
InterfaceProduct i=(InterfaceProduct) ptoducts.get(0);
without errors
but how I can materialize the Product Object ????????
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.624 / Virus Database: 401 - Release Date: 15/3/2004