Hi All, Am getting the following exception when trying to save a MemberVO with a vector containing an AddressVO
javax.servlet.ServletException: Incorrect field reference "null" in [EMAIL PROTECTED] delete=false,cascade retrieve=true,cascade store=true,is lazy=false,class of Items=class com.bowtech.ojb.domainmodel.om.AddressVO] at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:541) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:482) <class-descriptor class="com.bowtech.ojb.domainmodel.om.MemberVO" table="MEMBERS"> <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"/> <field-descriptor name="memberNum" column="memberNum" jdbc-type="VARCHAR"/> <field-descriptor name="firstName" column="firstName" jdbc-type="VARCHAR"/> <field-descriptor name="lastName" column="lastName" jdbc-type="VARCHAR"/> <field-descriptor name="suffix" column="suffix" jdbc-type="VARCHAR"/> <collection-descriptor name="addresses" element-class-ref="com.bowtech.ojb.domainmodel.om.AddressVO" auto- retrieve="true" auto-update="true"> <inverse-foreignkey field-id="memberId"/> </collection-descriptor> </class-descriptor> <class-descriptor class="com.bowtech.ojb.domainmodel.om.AddressVO" table="ADDRESSES"> <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"/> <field-descriptor name="address1" column="address1" jdbc-type="VARCHAR"/> <field-descriptor name="address2" column="address2" jdbc-type="VARCHAR"/> <field-descriptor name="city" column="city" jdbc-type="VARCHAR"/> <field-descriptor name="stateId" column="stateId" jdbc-type="INTEGER"/> <field-descriptor name="countryId" column="countryId" jdbc-type="INTEGER"/> <field-descriptor name="memberId" column="memberId" jdbc-type="BIGINT"/> <!-- etc.... ---> </class-descriptor> where addresses is Vector in MemberVO memberID is Long in AddressVO broker code is below Thanks public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) { DynaValidatorForm _form = (DynaValidatorForm)form; MemberVO vo = new MemberVO(); AddressVO address_vo = new AddressVO(); vo.setMemberNum((String)_form.get("memberNum")); vo.setFirstName((String)_form.get("firstName")); vo.setLastName((String)_form.get("lastName")); vo.setSuffix((String)_form.get("suffix")); // etc.... address_vo.setAddress1((String)_form.get("address1")); address_vo.setAddress2((String)_form.get("address2")); address_vo.setCity((String)_form.get("city")); address_vo.setCountryId(Integer.parseInt(_form.get("countryId").toString())); //etc... Vector v = new Vector(); v.add(address_vo); vo.setAddresses(v); //insert member into DB PersistenceBroker broker = null; broker = PersistenceBrokerFactory.defaultPersistenceBroker(); broker.beginTransaction(); broker.store(vo); // if I add line broker.store(address_vo) it is stored fine. broker.commitTransaction(); return mapping.findForward("success"); } -------------------------------------------------------------- Ross Rotherham