Index: test1137/Administrator.java =================================================================== RCS file: test1137/Administrator.java diff -N test1137/Administrator.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/Administrator.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,10 @@ +package test1137; + +public class Administrator extends Subscriber { + private String password; + + public String getPassword() { return password; } + public void setPassword(String password) { this.password = password; } +} + + Index: test1137/Subscriber.java =================================================================== RCS file: test1137/Subscriber.java diff -N test1137/Subscriber.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/Subscriber.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,13 @@ +package test1137; + +public class Subscriber { + private int id; + private String emailAddress; + + public int getId() { return id; } + public void setId(int id) { this.id = id; } + + public String getEmailAddress() { return emailAddress; } + public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } +} + Index: test1137/Test1137.java =================================================================== RCS file: test1137/Test1137.java diff -N test1137/Test1137.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/Test1137.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,183 @@ +package test1137; + +import junit.framework.TestCase; + +import org.exolab.castor.jdo.Database; +import org.exolab.castor.jdo.JDO2; +import org.exolab.castor.jdo.OQLQuery; +import org.exolab.castor.jdo.QueryResults; +import org.exolab.castor.mapping.Mapping; + +public class Test1137 extends TestCase { + public static final String JdoConfFile = "jdo-conf.xml"; + public static final String MappingFile = "mapping.xml"; + + private Mapping mapping; + private JDO2 jdo; + + public static void main(String[] args) { + junit.textui.TestRunner.run( Test1137.class ); + } + + protected void setUp() throws Exception { + super.setUp(); + + mapping = new Mapping( getClass().getClassLoader() ); + mapping.loadMapping( getClass().getResource( MappingFile ) ); + + JDO2.loadConfiguration( getClass().getResource( JdoConfFile ).toString() ); + jdo = JDO2.createInstance( "test" ); + + try { + System.out.println( "Removing existing administrator objects" ); + Database db = jdo.getDatabase(); + db.begin(); + OQLQuery query = db.getOQLQuery( "select a from " + Administrator.class.getName() + " a" ); + QueryResults results = query.execute(); + while ( results.hasMore() ) { + Administrator administrator = (Administrator) results.next(); + db.remove( administrator ); + } + db.commit(); + db.close(); + + System.out.println( "Removing existing subscriber objects" ); + db = jdo.getDatabase(); + db.begin(); + query = db.getOQLQuery( "select s from " + Subscriber.class.getName() + " s" ); + results = query.execute(); + while ( results.hasMore() ) { + Subscriber subscriber = (Subscriber) results.next(); + db.remove( subscriber ); + } + db.commit(); + db.close(); + + System.out.println( "Adding test objects" ); + db = jdo.getDatabase(); + db.begin(); + Administrator administrator = new Administrator(); + administrator.setEmailAddress( "admin@JAMMConsulting.com" ); + administrator.setPassword( "test" ); + db.create( administrator ); + administrator = new Administrator(); + administrator.setEmailAddress( "admin1@JAMMConsulting.com" ); + administrator.setPassword( "test1" ); + db.create( administrator ); + db.commit(); + db.close(); + + db = jdo.getDatabase(); + db.begin(); + Subscriber subscriber = new Subscriber(); + subscriber.setEmailAddress( "test@JAMMConsulting.com" ); + db.create( subscriber ); + db.commit(); + db.close(); + + db = jdo.getDatabase(); + db.begin(); + subscriber = new Subscriber(); + subscriber.setEmailAddress( "test1@JAMMConsulting.com" ); + db.create( subscriber ); + db.commit(); + db.close(); + + db = jdo.getDatabase(); + db.begin(); + subscriber = new Subscriber(); + subscriber.setEmailAddress( "test2@JAMMConsulting.com" ); + db.create( subscriber ); + db.commit(); + db.close(); + + System.out.println( "Done" ); + } catch( Exception ex ) { + System.out.println( "Caught Exception: "+ ex ); + ex.printStackTrace(); + } + } + + protected void tearDown() throws Exception { + super.tearDown(); + } + +// public void testQuerySubscribers() { +// try { +// Database db = jdo.getDatabase(); +// db.begin(); +// +// OQLQuery query = db.getOQLQuery("select s from " + Subscriber.class.getName() +// + " s where s.emailAddress = $1" ); +// query.bind( "admin@JAMMConsulting.com" ); +// QueryResults results = query.execute(); +// if ( results.hasMore() ) { +// Subscriber subscriber = (Subscriber) results.next(); +// System.out.println( "Found subscriber: " + subscriber.getEmailAddress() ); +// } +// +// db.commit(); +// db.close(); +// } catch ( Exception ex ) { +// System.out.println( "Caught exception: " + ex ); +// ex.printStackTrace(); +// } +// } + +// public void testQueryAdministrators() { +// try { +// Database db = jdo.getDatabase(); +// db.begin(); +// +// OQLQuery query = db.getOQLQuery( "select a from " + Administrator.class.getName() +// + " a where a.emailAddress = $1 and a.password = $2" ); +// query.bind( "admin@JAMMConsulting.com" ); +// query.bind( "test" ); +// QueryResults results = query.execute(); +// if ( results.hasMore() ) { +// Administrator administrator = (Administrator) results.next(); +// System.out.println( "Found administrator: " + administrator.getEmailAddress() +// + " with password: "+administrator.getPassword() ); +// } +// +// db.commit(); +// db.close(); +// } catch ( Exception ex ) { +// System.out.println( "Caught exception: " + ex ); +// ex.printStackTrace(); +// } +// } + + public void testQueryBoth() { + try { + Database db = jdo.getDatabase(); + db.begin(); + + OQLQuery query = db.getOQLQuery("select s from " + Subscriber.class.getName() + + " s where s.emailAddress = $1" ); + query.bind( "admin@JAMMConsulting.com" ); + QueryResults results = query.execute(); + if ( results.hasMore() ) { + Subscriber subscriber = (Subscriber) results.next(); + System.out.println( "Found subscriber: " + subscriber.getEmailAddress() ); + } + + query = db.getOQLQuery( "select a from " + Administrator.class.getName() + + " a where a.emailAddress = $1 and a.password = $2" ); + query.bind( "admin@JAMMConsulting.com" ); + query.bind( "test" ); + results = query.execute(); + if ( results.hasMore() ) { + Administrator administrator = (Administrator) results.next(); + System.out.println( "Found administrator: " + administrator.getEmailAddress() + + " with password: "+administrator.getPassword() ); + } + + db.commit(); + db.close(); + } catch ( Exception ex ) { + System.out.println( "Caught exception: " + ex ); + ex.printStackTrace(); + } + } +} Index: test1137/ddl.sql =================================================================== RCS file: test1137/ddl.sql diff -N test1137/ddl.sql --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/ddl.sql 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,13 @@ +DROP TABLE IF EXISTS Administrator; +CREATE TABLE Administrator ( + id int PRIMARY KEY, + password varchar(255) NOT NULL, + INDEX (password) +) TYPE = InnoDB; + +DROP TABLE IF EXISTS Subscriber; +CREATE TABLE Subscriber ( + id int PRIMARY KEY, + emailAddress varchar(255) NOT NULL, + INDEX (emailAddress) +) TYPE = InnoDB; Index: test1137/jdo-conf.xml =================================================================== RCS file: test1137/jdo-conf.xml diff -N test1137/jdo-conf.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/jdo-conf.xml 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Index: test1137/mapping.xml =================================================================== RCS file: test1137/mapping.xml diff -N test1137/mapping.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ test1137/mapping.xml 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +