tfischer 2004/12/06 11:53:54 Modified: src/rttest/org/apache/torque Tag: TORQUE_3_1_BRANCH DataTest.java Log: removed compile errors added new method testAsColumn() which runs a simple test on Criteria.addAsColumn(...) Revision Changes Path No revision No revision 1.8.2.4 +52 -8 db-torque/src/rttest/org/apache/torque/DataTest.java Index: DataTest.java =================================================================== RCS file: /home/cvs/db-torque/src/rttest/org/apache/torque/DataTest.java,v retrieving revision 1.8.2.3 retrieving revision 1.8.2.4 diff -u -r1.8.2.3 -r1.8.2.4 --- DataTest.java 1 Dec 2004 15:03:39 -0000 1.8.2.3 +++ DataTest.java 6 Dec 2004 19:53:54 -0000 1.8.2.4 @@ -31,6 +31,7 @@ import org.apache.torque.test.MultiPk; import org.apache.torque.test.MultiPkPeer; import org.apache.torque.test.NullValueTable; +import org.apache.torque.util.BasePeer; import org.apache.torque.util.Criteria; /** @@ -447,7 +448,7 @@ Criteria.RIGHT_JOIN); criteria.addJoin( AuthorPeer.AUTHOR_ID, - "b." + BookPeer.getRawColumnName(BookPeer.AUTHOR_ID), + "b." + getRawColumnName(BookPeer.AUTHOR_ID), Criteria.LEFT_JOIN); authorList = AuthorPeer.doSelect(criteria); // Here we get 11 authors: @@ -467,7 +468,7 @@ criteria.addJoin(BookPeer.AUTHOR_ID, AuthorPeer.AUTHOR_ID, Criteria.RIGHT_JOIN); criteria.addJoin( - "b." + BookPeer.getRawColumnName(BookPeer.AUTHOR_ID), + "b." + getRawColumnName(BookPeer.AUTHOR_ID), AuthorPeer.AUTHOR_ID, Criteria.RIGHT_JOIN); authorList = AuthorPeer.doSelect(criteria); @@ -577,9 +578,9 @@ criteria.addJoin(BookPeer.AUTHOR_ID, AuthorPeer.AUTHOR_ID); criteria.addJoin( AuthorPeer.AUTHOR_ID, - "b." + BookPeer.getRawColumnName(BookPeer.AUTHOR_ID)); + "b." + getRawColumnName(BookPeer.AUTHOR_ID)); criteria.addAscendingOrderByColumn( - "b." + BookPeer.getRawColumnName(BookPeer.TITLE)); + "b." + getRawColumnName(BookPeer.TITLE)); criteria.addDescendingOrderByColumn(BookPeer.TITLE); // the retrieved columns are // author book b @@ -617,10 +618,10 @@ criteria.addJoin(BookPeer.AUTHOR_ID, AuthorPeer.AUTHOR_ID); criteria.addJoin( AuthorPeer.AUTHOR_ID, - "b." + BookPeer.getRawColumnName(BookPeer.AUTHOR_ID)); + "b." + getRawColumnName(BookPeer.AUTHOR_ID)); criteria.addAscendingOrderByColumn(BookPeer.TITLE); criteria.addDescendingOrderByColumn( - "b." + BookPeer.getRawColumnName(BookPeer.TITLE)); + "b." + getRawColumnName(BookPeer.TITLE)); // the retrieved columns are // author book b // author1 book1 book1 @@ -672,11 +673,11 @@ { Author author = new Author(); author.setName("AuTHor"); - criteria.setIgnoreCase(true); author.save(); Criteria criteria = new Criteria(); criteria.add(AuthorPeer.NAME, author.getName().toLowerCase()); + criteria.setIgnoreCase(true); List result = AuthorPeer.doSelect(criteria); if (result.size() != 1) { @@ -692,6 +693,27 @@ } } + /** + * tests AsColumns produce valid SQL code + */ + public void testAsColumn() { + try + { + Criteria criteria = new Criteria(); + criteria.addAsColumn("ALIASNAME", AuthorPeer.NAME); + // we need an additional column to select from, + // to indicate the table we want use + criteria.addSelectColumn(AuthorPeer.AUTHOR_ID); + BasePeer.doSelect(criteria); + } + catch( Exception e) + { + e.printStackTrace(); + fail("Exception caught : " + + e.getClass().getName() + + " : " + e.getMessage()); + } + } /** * Deletes all authors and books in the bookstore tables @@ -726,4 +748,26 @@ + " : " + e.getMessage()); } } + + + /** + * Strips the schema and table name from a fully qualified colum name + * This is useful for creating Query with aliases, as the constants + * for the colum names in the data objects are fully qualified. + * @param fullyQualifiedColumnName the fully qualified column name, not null + * @return the column name stripped from the table (and schema) prefixes + */ + public static String getRawColumnName(String fullyQualifiedColumnName) + { + int dotPosition = fullyQualifiedColumnName.lastIndexOf("."); + if (dotPosition == -1) + { + return fullyQualifiedColumnName; + } + String result = fullyQualifiedColumnName.substring( + dotPosition + 1, + fullyQualifiedColumnName.length()); + return result; + } + }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]