|
RentalDomain.java |
|
/* * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations under * the License. * * The Original Code is jRelationalFramework. * * The Initial Developer of the Original Code is is.com. * Portions created by is.com are Copyright (C) 2000 is.com. * All Rights Reserved. * * Contributor(s): Jonathan Carlson (joncrlsn@users.sf.net) * Contributor(s): ____________________________________ * * Alternatively, the contents of this file may be used under the terms of * the GNU General Public License (the "GPL") or the GNU Lesser General * Public license (the "LGPL"), in which case the provisions of the GPL or * LGPL are applicable instead of those above. If you wish to allow use of * your version of this file only under the terms of either the GPL or LGPL * and not to allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and replace them * with the notice and other provisions required by either the GPL or LGPL * License. If you do not delete the provisions above, a recipient may use * your version of this file under either the MPL or GPL or LGPL License. * */ package videoStore; import com.is.jrf.AbstractDomain; import com.is.jrf.CompoundPrimaryKeyColumnSpec; import com.is.jrf.IntegerColumnSpec; import com.is.jrf.JoinTable; import com.is.jrf.PersistentObject; import com.is.jrf.StringJoinColumn; import com.is.jrf.TimestampColumnSpec; import java.util.List; public class RentalDomain extends AbstractDomain { /** * This method includes an example of a deep join (i.e. where table A * joins with table B which joins with table C). The flattening of the * table structure in this way can improve performance. */ protected void setup() { JoinTable videoJoinTable = null; JoinTable genreJoinTable = null; JoinTable mediaJoinTable = null; this.setTableName("Rental"); this.setTableAlias("R"); this.setJDBCHelperPoolName("example"); // Column Specs this.addColumnSpec( new CompoundPrimaryKeyColumnSpec( new IntegerColumnSpec( "CUSTOMER_ID", "getCustomerId", "setCustomerId", DEFAULT_TO_NULL), new IntegerColumnSpec( "VIDEO_ID", "getVideoId", "setVideoId", DEFAULT_TO_NULL))); this.addColumnSpec( new TimestampColumnSpec( "DATE_DUE", "getDateDue", "setDateDue", DEFAULT_TO_NULL)); // Join Rental with Customer this.addJoinTable( videoJoinTable = new JoinTable( "Customer", // table name and alias "CUSTOMER_ID", // Rental (main table) column(s) "ID")); // Customer (join table) column(s) videoJoinTable.addJoinColumn( new StringJoinColumn("Name CustomerName", "setCustomerName")); // Join Rental with Video this.addJoinTable( videoJoinTable = new JoinTable( "Video", // table name and alias "VIDEO_ID", // Rental (main table) column(s) "ID")); // Video (join table) columns(s) videoJoinTable.addJoinColumn( new StringJoinColumn("Title", "setVideoTitle")); // Join Video with Genre videoJoinTable.addJoinTable( genreJoinTable = new JoinTable( "Genre", // table name & alias "GENRE_ID", // Video (main) table column(s) "ID")); // Genre (join) table column(s) genreJoinTable.addJoinColumn( new StringJoinColumn("Name GenreName", // column name and alias "setGenreName")); // setter method // Join Video with Media videoJoinTable.addJoinTable( mediaJoinTable = new JoinTable( "Media", // table name & alias "MEDIA_ID", // Video (main) table column(s) "ID")); // Media (join) table column(s) mediaJoinTable.addJoinColumn( new StringJoinColumn("Name MediaName", // column name and alias "setMediaName")); // setter method } // setup() public PersistentObject newPersistentObject() { return new Rental(); } /** * Custom SQL for doing a specialized search. * * @param s a value of type 'String' * @return a value of type 'List' */ public List findForCustomer(Customer c) { return this.findWhere( this.getTableAlias() + ".Customer_Id = " + c.getId()); } }
|
RentalDomain.java |
|