I'm using ojb since yestarday and I experience some problems ...
when I use ojb for one class which takes date from one table everything is ok, the problem begins when I have object o1 of a type AddressBO which has an object o2 of a type AddressTypeBO and I want to take o1 and of course have o2 filled.


And of course, when I want to do this I get error.

Any help is appreciated :)

I attached :
1) errorr description
2) java classes
3) repository.xml

1) I get this type of error :

[org.apache.ojb.broker.core.PersistenceBrokerImpl] DEBUG: Creating RsIterator for class [com.chw.crm.BusinessObject.AddressBO]
[org.apache.ojb.broker.core.PersistenceBrokerImpl] DEBUG: getObjectByIdentity com.chw.crm.BusinessObject.BO{2}
[PersistentField] ERROR: while set field:
[try to set 'object value' in 'target object'
target obj class: com.chw.crm.BusinessObject.AddressBO
target field name: addressType
target field type: class com.chw.crm.BusinessObject.AddressTypeBO
object value class: com.chw.crm.BusinessObject.AddressBO
object value: [EMAIL PROTECTED]
]
null
java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:519)
at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source)
at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source)
at org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReference(Unknown Source)
at org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReferences(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
at com.chw.crm.DAO.BusinessObjectDAO.OracleBusinessObjectDAO.OracleAddressDAO.getAddressBO(OracleAddressDAO.java:44)
at com.chw.crm.Action.TestAction.execute(TestAction.java:43)


2) java code (not all only needed fragments)


package com.chw.crm.BusinessObject;

import java.io.Serializable;

/**
 * @author Administrator
 *
 * @ojb.class generate-table-info="false"
 */

public class BO implements Serializable {

}


package com.chw.crm.BusinessObject;

/**
 * @ojb.class table="ADDRESS_T"
 *
 */

public class AddressBO extends BO {


/** * @ojb.field column="OBJID" * jdbc-type="BIGINT" * primarykey="true" * id="1" */ private long objid;

    /**
     * @ojb.field column="ADDRESS2STATUS"
     *            jdbc-type="BIGINT"
     *            id="2"
     */
    private long address2status;

/**
* @ojb.reference class-ref="com.chw.crm.BusinessObject.AddressTypeBO"
* foreignkey="address2addressType"
*
*/
private AddressTypeBO addressType;


    /**
     *
     * @ojb.field column="ADDRESS2ADDRESS_TYPE"
     *            jdbc-type="BIGINT"
     *            id="3"
     *
     */
    private long address2addressType;


package com.chw.crm.BusinessObject; /** * @ojb.class table="ADDRESS_TYPE_T" * include-inherited="true" */

public class AddressTypeBO extends BO {


/** * @ojb.field column="OBJID" * jdbc-type="BIGINT" * primarykey="true" * id="1" */ private long objid;

    /**
     * @ojb.field column="DESCRIPTION"
     *            jdbc-type="VARCHAR"
     *            id="2"
     */
    private String description;

    /**
     * @ojb.field column="VALUE"
     *            jdbc-type="VARCHAR"
     *            id="3"
     */
    private String value;



public class OracleAddressDAO implements AddressDAO {

        public AddressBO getAddressBO(int objid){

                AddressBO bo = new AddressBO();

                PersistenceBroker broker;

                try {

                        broker = OracleDAOFactory.getTheBroker();

                        broker.beginTransaction();

Criteria c = new Criteria();
c.addEqualTo("objid", new Integer( objid ) );
Query query = new QueryByCriteria( AddressBO.class , c );


---------->>>> error IS  HERE  !!!

try {
bo = (AddressBO)broker.getObjectByQuery( query );
} catch (PersistenceBrokerException e1) {



System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
System.out.println( e1.getMessage() );


System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
System.out.println( e1.getSourceException().toString() );


System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
System.out.println( e1.getCause() );


System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
                                e1.printStackTrace();

                        }

/*Iterator iter = broker.getIteratorByQuery(query);

                        if (iter.hasNext())
                                bo = (AddressBO)iter.next();
                        */
                        broker.commitTransaction();
                        broker.clearCache();

System.out.println("###222###bo to:"+bo.getObjid()+" :: "+bo.getStreet() );

                } catch (PBFactoryException e) {

                        e.printStackTrace();
                }

                return bo;
        }



3) repository file

<!-- file containing the repository descriptions for user-defined types -->
<!-- Generated by the xdoclet-ojb module -->


<class-descriptor
    class="com.chw.crm.BusinessObject.AddressBO"
    table="ADDRESS_T"

    <field-descriptor
        name="objid"
        column="OBJID"
        jdbc-type="BIGINT"
        primarykey="true"
    >
    </field-descriptor>
    <field-descriptor
        name="address2status"
        column="ADDRESS2STATUS"
        jdbc-type="BIGINT"
    >
    </field-descriptor>
    <field-descriptor
        name="address2addressType"
        column="ADDRESS2ADDRESS_TYPE"
        jdbc-type="BIGINT"
    >
    </field-descriptor>
    <field-descriptor
        name="description"
        column="DESCRIPTION"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="street"
        column="STREET"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="house"
        column="HOUSE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="apartment"
        column="APARTMENT"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="zipcode"
        column="ZIPCODE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="city"
        column="CITY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="postName"
        column="POST_NAME"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="country"
        column="COUNTRY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="area"
        column="AREA"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="region"
        column="REGION"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="shortAddress"
        column="SHORT_ADDRESS"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="mediumAddress"
        column="MEDIUM_ADDRESS"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="fullAddress"
        column="FULL_ADDRESS"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="valid"
        column="VALID"
        jdbc-type="BIGINT"
    >
    </field-descriptor>
    <field-descriptor
        name="isObsolate"
        column="IS_OBSOLATE"
        jdbc-type="BIGINT"
    >
    </field-descriptor>
    <field-descriptor
        name="createdBy"
        column="CREATED_BY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="creationDate"
        column="CREATION_DATE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="modyfiedBy"
        column="MODYFIED_BY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="modyficationDate"
        column="MODYFICATION_DATE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <reference-descriptor
        name="addressType"
        class-ref="com.chw.crm.BusinessObject.AddressTypeBO"
    >
        <foreignkey field-ref="address2addressType"/>
    </reference-descriptor>
</class-descriptor>
<class-descriptor
    class="com.chw.crm.BusinessObject.AddressTypeBO"
    table="ADDRESS_TYPE_T"

    <field-descriptor
        name="objid"
        column="OBJID"
        jdbc-type="BIGINT"
        primarykey="true"
    >
    </field-descriptor>
    <field-descriptor
        name="description"
        column="DESCRIPTION"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="value"
        column="VALUE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="uValue"
        column="U_VALUE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="isObsolate"
        column="IS_OBSOLATE"
        jdbc-type="BIGINT"
    >
    </field-descriptor>
    <field-descriptor
        name="createdBy"
        column="CREATED_BY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="creationDate"
        column="CREATION_DATE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="modyfiedBy"
        column="MODYFIED_BY"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
    <field-descriptor
        name="modyficationDate"
        column="MODYFICATION_DATE"
        jdbc-type="VARCHAR"
        length="254"
    >
    </field-descriptor>
</class-descriptor>
<class-descriptor
    class="com.chw.crm.BusinessObject.BO"

<extent-class class-ref="com.chw.crm.BusinessObject.AddressBO"/>
<extent-class class-ref="com.chw.crm.BusinessObject.AddressTypeBO"/>
</class-descriptor>







regards, Wojciech Chmielewski

email [EMAIL PROTECTED] mobile 501172125
----------------------------------------------------------------

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



Reply via email to