You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2004/05/11 13:55:58 UTC
cvs commit: db-ojb/src/test/org/apache/ojb/broker/sequence NativeIdentifierTest.java
arminw 2004/05/11 04:55:58
Modified: src/test/org/apache/ojb repository_junit_odmg.xml
repository_junit_meta_seq.xml
src/test/org/apache/ojb/broker
InheritanceMultipleTableTest.java
src/test/org/apache/ojb/broker/sequence
NativeIdentifierTest.java
Added: src/test/org/apache/ojb/odmg
InheritanceMultipleTableTest.java
Log:
- add odmg test for object inheritance using multiple tables
- update identity column sequence test
Revision Changes Path
1.10 +147 -1 db-ojb/src/test/org/apache/ojb/repository_junit_odmg.xml
Index: repository_junit_odmg.xml
===================================================================
RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit_odmg.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- repository_junit_odmg.xml 7 May 2004 12:10:52 -0000 1.9
+++ repository_junit_odmg.xml 11 May 2004 11:55:57 -0000 1.10
@@ -1225,4 +1225,150 @@
</class-descriptor>
+<!-- =================================================== -->
+<!-- Mapping Classes on Multiple Joined Tables test -->
+<!-- =================================================== -->
+<class-descriptor
+ class="org.apache.ojb.odmg.InheritanceMultipleTableTest$Employee"
+ table="INHERITANCE_MULTI_EMPLOYEE"
+ >
+ <field-descriptor
+ name="id"
+ column="OBJ_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="fkAddress"
+ column="FK_ADDRESS"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <reference-descriptor name="address"
+ class-ref="org.apache.ojb.odmg.InheritanceMultipleTableTest$Address"
+ auto-retrieve="true"
+ auto-update="false"
+ auto-delete="false"
+ >
+ <foreignkey field-ref="fkAddress" />
+ </reference-descriptor>
+</class-descriptor>
+
+<class-descriptor
+ class="org.apache.ojb.odmg.InheritanceMultipleTableTest$Executive"
+ table="INHERITANCE_MULTI_EXECUTIVE"
+ >
+ <field-descriptor
+ name="id"
+ column="OBJ_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+ <field-descriptor
+ name="department"
+ column="DEPARTMENT"
+ jdbc-type="VARCHAR"
+ />
+ <field-descriptor
+ name="superId"
+ column="SUPER_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <field-descriptor
+ name="managerId"
+ column="MANAGER_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <reference-descriptor name="super"
+ class-ref="org.apache.ojb.odmg.InheritanceMultipleTableTest$Employee"
+ auto-retrieve="true"
+ auto-update="false"
+ auto-delete="false"
+ >
+ <foreignkey field-ref="superId" />
+ </reference-descriptor>
+
+ <reference-descriptor name="manager"
+ class-ref="org.apache.ojb.odmg.InheritanceMultipleTableTest$Manager"
+ auto-retrieve="false"
+ auto-update="none"
+ auto-delete="none"
+ >
+ <foreignkey field-ref="managerId" />
+ </reference-descriptor>
+</class-descriptor>
+
+<class-descriptor
+ class="org.apache.ojb.odmg.InheritanceMultipleTableTest$Manager"
+ table="INHERITANCE_MULTI_MANAGER"
+ >
+ <field-descriptor
+ name="id"
+ column="OBJ_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="superId"
+ column="SUPER_ID"
+ jdbc-type="INTEGER"
+ access="anonymous"
+ />
+
+ <reference-descriptor name="super"
+ class-ref="org.apache.ojb.odmg.InheritanceMultipleTableTest$Executive"
+ auto-retrieve="true"
+ auto-update="false"
+ auto-delete="false"
+ >
+ <foreignkey field-ref="superId" />
+ </reference-descriptor>
+
+ <collection-descriptor
+ name="executives"
+ element-class-ref="org.apache.ojb.odmg.InheritanceMultipleTableTest$Executive"
+ proxy="true"
+ auto-retrieve="true"
+ auto-update="false"
+ auto-delete="false"
+ >
+ <inverse-foreignkey field-ref="managerId"/>
+ </collection-descriptor>
+</class-descriptor>
+
+<class-descriptor
+ class="org.apache.ojb.odmg.InheritanceMultipleTableTest$Address"
+ table="INHERITANCE_MULTI_ADDRESS"
+ >
+ <field-descriptor
+ name="id"
+ column="OBJ_ID"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="street"
+ column="STREET"
+ jdbc-type="VARCHAR"
+ />
+</class-descriptor>
+
+
<!-- Mapping of classes used in junit tests and tutorials ends here -->
1.6 +18 -1 db-ojb/src/test/org/apache/ojb/repository_junit_meta_seq.xml
Index: repository_junit_meta_seq.xml
===================================================================
RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit_meta_seq.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- repository_junit_meta_seq.xml 19 Apr 2004 16:23:26 -0000 1.5
+++ repository_junit_meta_seq.xml 11 May 2004 11:55:57 -0000 1.6
@@ -627,6 +627,23 @@
column="NAME"
jdbc-type="VARCHAR"
/>
+
+ <field-descriptor
+ name="refFK"
+ column="REF_ID"
+ jdbc-type="BIGINT"
+ access="anonymous"
+ />
+
+ <reference-descriptor
+ name="mainObject"
+ class-ref="org.apache.ojb.broker.sequence.NativeIdentifierTest$MainObject"
+ proxy="false"
+ auto-retrieve="false"
+ auto-update="true"
+ auto-delete="true">
+ <foreignkey field-ref="refFK"/>
+ </reference-descriptor>
</class-descriptor>
1.1 db-ojb/src/test/org/apache/ojb/odmg/InheritanceMultipleTableTest.java
Index: InheritanceMultipleTableTest.java
===================================================================
package org.apache.ojb.odmg;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.ojb.broker.Identity;
import org.apache.ojb.junit.ODMGTestCase;
import org.odmg.OQLQuery;
import org.odmg.Transaction;
/**
* Test inheritance using multiple tables.
*
* @author <a href="mailto:arminw@apache.org">Armin Waibel</a>
* @version $Id: InheritanceMultipleTableTest.java,v 1.1 2004/05/11 11:55:57 arminw Exp $
*/
public class InheritanceMultipleTableTest extends ODMGTestCase
{
public static void main(String[] args)
{
junit.textui.TestRunner.main(new String[] {InheritanceMultipleTableTest.class.getName()});
}
public void testQuery() throws Exception
{
String name = "testInsert" + System.currentTimeMillis();
Manager m_1 = new Manager(name + "_manager_1");
Manager m_2 = new Manager(name + "_manager_2");
Manager m_3 = new Manager(name + "_manager_3");
m_3.setDepartment("none");
Executive ex_1 = new Executive(name+"_executive", "department_1", null);
Executive ex_2 = new Executive(name+"_executive", "department_1", null);
Employee em = new Employee(name+"_employee");
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
database.makePersistent(m_1);
database.makePersistent(m_2);
database.makePersistent(m_3);
database.makePersistent(ex_1);
database.makePersistent(ex_2);
database.makePersistent(em);
tx.commit();
tx.begin();
tx.getBroker().clearCache();
tx.commit();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Manager.class.getName()+" where name like $1 and department like $2");
query.bind(name + "%");
query.bind("none");
Collection result = (Collection) query.execute();
assertEquals(1, result.size());
query = odmg.newOQLQuery();
query.create("select objects from " + Employee.class.getName()+" where name like $1");
query.bind(name + "%");
result = (Collection) query.execute();
assertEquals(6, result.size());
query = odmg.newOQLQuery();
query.create("select objects from " + Executive.class.getName()+" where name like $1");
query.bind(name + "%");
result = (Collection) query.execute();
assertEquals(5, result.size());
query = odmg.newOQLQuery();
query.create("select objects from " + Manager.class.getName()+" where name like $1");
query.bind(name + "%");
result = (Collection) query.execute();
assertEquals(3, result.size());
}
private void prepareForQueryTests(String name)
{
Manager m_1 = new Manager(name + "_manager_1");
Manager m_2 = new Manager(name + "_manager_2");
Manager m_3 = new Manager(name + "_manager_3");
m_3.setDepartment("none");
Address a_1 = new Address("snob allee");
m_1.setAddress(a_1);
Executive ex_1 = new Executive(name+"_executive", "department_1", null);
Executive ex_2 = new Executive(name+"_executive", "department_1", null);
Employee em = new Employee(name+"_employee");
Address a_2 = new Address("cockroaches valley");
em.setAddress(a_2);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
database.makePersistent(m_1);
database.makePersistent(m_2);
database.makePersistent(m_3);
database.makePersistent(ex_1);
database.makePersistent(ex_2);
database.makePersistent(em);
tx.commit();
}
public void testQuery_InheritedObjects() throws Exception
{
String name = "testQuery_InheritedObjects" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Employee.class.getName()+" where name like $1");
query.bind(name + "%");
Collection result = (Collection) query.execute();
assertEquals(6, result.size());
for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
Employee obj = (Employee) iterator.next();
assertNotNull(obj.getName());
}
tx.getBroker().clearCache();
query = odmg.newOQLQuery();
query.create("select objects from " + Executive.class.getName()+" where name like $1");
query.bind(name + "%");
result = (Collection) query.execute();
assertEquals(5, result.size());
for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
Executive obj = (Executive) iterator.next();
assertNotNull(obj.getName());
}
tx.getBroker().clearCache();
query = odmg.newOQLQuery();
query.create("select objects from " + Manager.class.getName()+" where name like $1");
query.bind(name + "%");
result = (Collection) query.execute();
assertEquals(3, result.size());
for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
Manager obj = (Manager) iterator.next();
assertNotNull(obj.getName());
}
tx.commit();
}
public void testQuery_InheritedField() throws Exception
{
String name = "testQuery_InheritedField" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Manager.class.getName()+" where name like $1 and department like $2");
query.bind(name + "%");
query.bind("none");
Collection result = (Collection) query.execute();
tx.commit();
assertEquals(1, result.size());
}
public void testQuery_Reference() throws Exception
{
String name = "testQuery_Reference" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Employee.class.getName()+" where name like $1 and address.street like $2");
query.bind(name + "%");
query.bind("%valley");
Collection result = (Collection) query.execute();
tx.commit();
assertEquals(1, result.size());
Employee emp = (Employee) result.iterator().next();
assertNotNull(emp.getAddress());
assertEquals("cockroaches valley", emp.getAddress().getStreet());
}
public void testQuery_InheritedReference_1() throws Exception
{
String name = "testQuery_InheritedReference_1" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Manager.class.getName()+" where name like $1 and address.street like $2");
query.bind(name + "%");
query.bind("snob allee");
Collection result = (Collection) query.execute();
tx.commit();
assertEquals(1, result.size());
Manager retManager = (Manager) result.iterator().next();
assertNotNull(retManager);
assertEquals(name + "_manager_1", retManager.getName());
assertNotNull(retManager.getAddress());
assertEquals("snob allee", retManager.getAddress().getStreet());
}
public void testQuery_InheritedReference_2() throws Exception
{
String name = "testQuery_InheritedReference_2" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Executive.class.getName()+" where name like $1 and address.street like $2");
query.bind(name + "%");
query.bind("snob allee");
Collection result = (Collection) query.execute();
tx.commit();
assertEquals(1, result.size());
Executive retManager = (Executive) result.iterator().next();
assertNotNull(retManager);
assertEquals(name + "_manager_1", retManager.getName());
}
public void testQuery_InheritedReference_3() throws Exception
{
String name = "testQuery_InheritedReference_3" + System.currentTimeMillis();
prepareForQueryTests(name);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
tx.getBroker().clearCache();
OQLQuery query = odmg.newOQLQuery();
query.create("select objects from " + Employee.class.getName()+" where name like $1 and address.street like $2");
query.bind(name + "%");
query.bind("snob allee");
Collection result = (Collection) query.execute();
tx.commit();
assertEquals(1, result.size());
Employee emp = (Employee) result.iterator().next();
assertNotNull(emp);
assertEquals(name + "_manager_1", emp.getName());
}
public void testInsertQuery() throws Exception
{
String name = "testInsert" + System.currentTimeMillis();
Employee em1 = new Employee(name);
Executive ex1 = new Executive(name, "department_1", null);
Executive ex2 = new Executive(name, "department_2", null);
ArrayList list = new ArrayList();
list.add(ex1);
list.add(ex2);
Manager m1 = new Manager(name);
m1.setExecutives(list);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
database.makePersistent(em1);
database.makePersistent(m1);
tx.commit();
tx.begin();
Identity m1_oid = new Identity(m1, tx.getBroker());
Identity ex1_oid = new Identity(ex1, tx.getBroker());
Identity em1_oid = new Identity(em1, tx.getBroker());
tx.getBroker().clearCache();
Employee newEm1 = (Employee) tx.getBroker().getObjectByIdentity(em1_oid);
Executive newEx1 = (Executive) tx.getBroker().getObjectByIdentity(ex1_oid);
Manager newM1 = (Manager) tx.getBroker().getObjectByIdentity(m1_oid);
assertEquals(em1, newEm1);
assertEquals(ex1, newEx1);
assertEquals(m1, newM1);
assertEquals(name, newEx1.getName());
assertEquals(name, newM1.getName());
assertEquals(2, newM1.getExecutives().size());
OQLQuery queryEmployee = odmg.newOQLQuery();
queryEmployee.create("select objects from " + Employee.class.getName()+" where name like $1");
queryEmployee.bind(name);
OQLQuery queryExecutive = odmg.newOQLQuery();
queryExecutive.create("select objects from " + Executive.class.getName()+" where name like $1");
queryExecutive.bind(name);
OQLQuery queryManager = odmg.newOQLQuery();
queryManager.create("select objects from " + Manager.class.getName()+" where name like $1");
queryManager.bind(name);
Collection result = (Collection) queryEmployee.execute();
assertEquals(4, result.size());
result = (Collection) queryExecutive.execute();
assertEquals(3, result.size());
result = (Collection) queryManager.execute();
assertEquals(1, result.size());
}
public void testUpdate() throws Exception
{
// TODO: not all changes are written to DB
if(ojbSkipKnownIssueProblem()) return;
String name = "testUpdate" + System.currentTimeMillis();
Employee em1 = new Employee("employee_" + name);
Executive ex1 = new Executive("executive_" + name, "department_1", null);
Executive ex2 = new Executive("executive_" + name, "department_2", null);
ArrayList list = new ArrayList();
list.add(ex1);
list.add(ex2);
Manager m1 = new Manager("manager_" + name);
m1.setExecutives(list);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
database.makePersistent(em1);
database.makePersistent(m1);
tx.commit();
tx.begin();
Identity m1_oid = new Identity(m1, tx.getBroker());
Identity ex1_oid = new Identity(ex1, tx.getBroker());
Identity em1_oid = new Identity(em1, tx.getBroker());
tx.getBroker().clearCache();
Employee newEm1 = (Employee) tx.getBroker().getObjectByIdentity(em1_oid);
Executive newEx1 = (Executive) tx.getBroker().getObjectByIdentity(ex1_oid);
Manager newM1 = (Manager) tx.getBroker().getObjectByIdentity(m1_oid);
tx.commit();
assertEquals(2, newM1.getExecutives().size());
tx.begin();
tx.lock(newEm1, Transaction.WRITE);
tx.lock(newEx1, Transaction.WRITE);
tx.lock(newM1, Transaction.WRITE);
newEm1.setName("**updated_"+name);
newM1.setName("**updated_"+name);
((Executive) newM1.getExecutives().get(0)).setName("**updated_"+name);
tx.commit();
//*************************************
tx.begin();
tx.getBroker().clearCache();
em1 = (Employee) tx.getBroker().getObjectByIdentity(em1_oid);
ex1 = (Executive) tx.getBroker().getObjectByIdentity(ex1_oid);
m1 = (Manager) tx.getBroker().getObjectByIdentity(m1_oid);
tx.commit();
//*************************************
assertEquals(newEm1, em1);
assertEquals(newEx1, ex1);
assertEquals(newM1, m1);
assertEquals(2, m1.getExecutives().size());
}
public void testDelete()
{
// TODO: not all objects will be deleted
if(ojbSkipKnownIssueProblem()) return;
String name = "testUpdate" + System.currentTimeMillis();
Employee em1 = new Employee("employee_" + name);
Executive ex1 = new Executive("executive_" + name, "department_1", null);
Executive ex2 = new Executive("executive_" + name, "department_2", null);
ArrayList list = new ArrayList();
list.add(ex1);
list.add(ex2);
Manager m1 = new Manager("manager_" + name);
m1.setExecutives(list);
TransactionExt tx = (TransactionExt) odmg.newTransaction();
tx.begin();
database.makePersistent(em1);
database.makePersistent(m1);
tx.commit();
tx.begin();
Identity m1_oid = new Identity(m1, tx.getBroker());
Identity ex1_oid = new Identity(ex1, tx.getBroker());
Identity em1_oid = new Identity(em1, tx.getBroker());
tx.getBroker().clearCache();
Employee newEm1 = (Employee) tx.getBroker().getObjectByIdentity(em1_oid);
Executive newEx1 = (Executive) tx.getBroker().getObjectByIdentity(ex1_oid);
Manager newM1 = (Manager) tx.getBroker().getObjectByIdentity(m1_oid);
tx.commit();
assertNotNull(newEm1);
assertNotNull(newEx1);
assertNotNull(newM1);
assertEquals(2, newM1.getExecutives().size());
//*************************************
tx.begin();
database.deletePersistent(newEm1);
database.deletePersistent(newEx1);
database.deletePersistent(newM1);
tx.commit();
//*************************************
tx.begin();
newEm1 = (Employee) tx.getBroker().getObjectByIdentity(em1_oid);
newEx1 = (Executive) tx.getBroker().getObjectByIdentity(ex1_oid);
newM1 = (Manager) tx.getBroker().getObjectByIdentity(m1_oid);
tx.commit();
assertNull(newEm1);
assertNull(newEx1);
assertNull(newM1);
}
//************************************************************
// inner classes used for test
//************************************************************
public static class Manager extends Executive
{
private List executives;
public Manager()
{
}
public Manager(String name)
{
super(name,null, null);
}
public List getExecutives()
{
return executives;
}
public void setExecutives(List executives)
{
this.executives = executives;
}
}
public static class Executive extends Employee
{
private String department;
private Manager manager;
public Executive()
{
}
public Executive(String name, String department, Manager manager)
{
super(name);
this.department = department;
this.manager = manager;
}
public String getDepartment()
{
return department;
}
public void setDepartment(String department)
{
this.department = department;
}
public Manager getManager()
{
return manager;
}
public void setManager(Manager manager)
{
this.manager = manager;
}
public boolean equals(Object obj)
{
if(! (obj instanceof Executive))
{
return false;
}
Executive ex = (Executive) obj;
return new EqualsBuilder().append(getId(), ex.getId())
.append(getName(), ex.getName())
.append(getDepartment(), ex.getDepartment()).isEquals();
}
}
public static class Employee
{
private Integer id;
private String name;
private AddressIF address;
public Employee()
{
}
public Employee(String name)
{
this.name = name;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public AddressIF getAddress()
{
return address;
}
public void setAddress(AddressIF address)
{
this.address = address;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public boolean equals(Object obj)
{
if(! (obj instanceof Employee))
{
return false;
}
Employee em = (Employee) obj;
return new EqualsBuilder().append(getId(), em.getId()).append(getName(), em.getName()).isEquals();
}
public String toString()
{
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE, false, Employee.class);
}
}
public static class Address implements AddressIF
{
private Integer id;
private String street;
public Address()
{
}
public Address(String street)
{
this.street = street;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getStreet()
{
return street;
}
public void setStreet(String street)
{
this.street = street;
}
}
public static interface AddressIF
{
public Integer getId();
public void setId(Integer id);
public String getStreet();
public void setStreet(String street);
}
}
1.7 +8 -19 db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java
Index: InheritanceMultipleTableTest.java
===================================================================
RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- InheritanceMultipleTableTest.java 6 May 2004 21:22:33 -0000 1.6
+++ InheritanceMultipleTableTest.java 11 May 2004 11:55:57 -0000 1.7
@@ -11,36 +11,21 @@
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.query.QueryFactory;
-import org.apache.ojb.junit.OJBTestCase;
+import org.apache.ojb.junit.PBTestCase;
/**
- *
+ * Test inheritance using multiple tables.
*
* @author <a href="mailto:arminw@apache.org">Armin Waibel</a>
* @version $Id$
*/
-public class InheritanceMultipleTableTest extends OJBTestCase
+public class InheritanceMultipleTableTest extends PBTestCase
{
- private PersistenceBroker broker;
-
public static void main(String[] args)
{
junit.textui.TestRunner.main(new String[] {InheritanceMultipleTableTest.class.getName()});
}
- public void setUp()
- {
- broker = PersistenceBrokerFactory.defaultPersistenceBroker();
- }
-
- public void tearDown()
- {
- if(broker != null)
- {
- broker.close();
- }
- }
-
public void testQuery()
{
String name = "testInsert" + System.currentTimeMillis();
@@ -63,6 +48,7 @@
broker.store(em);
broker.commitTransaction();
+ broker.clearCache();
Criteria crit = new Criteria();
crit.addLike("name", name + "%");
crit.addLike("department", "none");
@@ -184,6 +170,9 @@
Query query = QueryFactory.newQuery(Employee.class, crit);
Collection result = broker.getCollectionByQuery(query);
assertEquals(1, result.size());
+ Employee emp = (Employee) result.iterator().next();
+ assertNotNull(emp.getAddress());
+ assertEquals("cockroaches valley", emp.getAddress().getStreet());
}
public void testQuery_InheritedReference_1()
1.10 +16 -3 db-ojb/src/test/org/apache/ojb/broker/sequence/NativeIdentifierTest.java
Index: NativeIdentifierTest.java
===================================================================
RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/sequence/NativeIdentifierTest.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- NativeIdentifierTest.java 31 Oct 2003 22:21:18 -0000 1.9
+++ NativeIdentifierTest.java 11 May 2004 11:55:57 -0000 1.10
@@ -52,10 +52,10 @@
// Statements for NATIVE_REF_TEST table
private static final String CREATE_REF_MYSQL =
"CREATE TABLE NATIVE_REFERENCE_OBJECT (NATIVE_ID int(11) NOT NULL PRIMARY KEY auto_increment," +
- " NAME VARCHAR(250), FK_ID BIGINT, SINGLE_REF_FK BIGINT)";
+ " NAME VARCHAR(250), FK_ID BIGINT, REF_ID int(11), SINGLE_REF_FK BIGINT)";
private static final String CREATE_REF_HSQL =
"CREATE TABLE NATIVE_REFERENCE_OBJECT (NATIVE_ID IDENTITY NOT NULL PRIMARY KEY," +
- " NAME VARCHAR(250), FK_ID BIGINT, SINGLE_REF_FK BIGINT)";
+ " NAME VARCHAR(250), FK_ID BIGINT, REF_ID int(11), SINGLE_REF_FK BIGINT)";
private static final String DROP_REF = "DROP TABLE NATIVE_REFERENCE_OBJECT";
private static final String INSERT_DUMMY_REF = "INSERT INTO NATIVE_REFERENCE_OBJECT (NAME) VALUES ('Dummy_2')";
@@ -283,7 +283,9 @@
obj_1.addReference(ref_4);
obj_1.setSingleReference(s_ref_3);
+ s_ref_3.setMainObject(obj_1);
obj_2.setSingleReference(s_ref_4);
+ s_ref_3.setMainObject(obj_1);
broker.beginTransaction();
// first store a reference
@@ -610,6 +612,7 @@
{
Long id;
String name;
+ MainObject mainObject;
public SingleReference()
{
@@ -620,6 +623,16 @@
{
this.name = name;
// id = new Long((long)(Math.random() * Integer.MAX_VALUE));
+ }
+
+ public MainObject getMainObject()
+ {
+ return mainObject;
+ }
+
+ public void setMainObject(MainObject mainObject)
+ {
+ this.mainObject = mainObject;
}
public Long getId()
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org