📄 peer.vm
字号:
package ${package};import java.math.BigDecimal;import java.sql.Connection;import java.sql.SQLException;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import org.apache.torque.NoRowsException;import org.apache.torque.TooManyRowsException;import org.apache.torque.Torque;import org.apache.torque.TorqueException;import org.apache.torque.map.MapBuilder;import org.apache.torque.map.TableMap;import org.apache.torque.om.DateKey;import org.apache.torque.om.NumberKey;import org.apache.torque.om.StringKey;import org.apache.torque.om.ObjectKey;import org.apache.torque.om.SimpleKey;import org.apache.torque.util.BasePeer;import org.apache.torque.util.Criteria;import com.workingdogs.village.DataSetException;import com.workingdogs.village.QueryDataSet;import com.workingdogs.village.Record;// Local classesimport ${package}.map.*;#foreach ($fk in $table.ForeignKeys) #set ( $tblFK = $table.Database.getTable($fk.ForeignTableName) ) #if ($tblFK.Package != $package)import ${tblFK.Package}.${tblFK.JavaName};import ${tblFK.Package}.${tblFK.JavaName}Peer; #end#end/**#if ($addTimeStamp) * This class was autogenerated by Torque on: * * [$now] *#end */public abstract class $basePrefix${table.JavaName}Peer extends $table.BasePeer{#if (!$table.isAlias()) /** the default database name for this class */ public static final String DATABASE_NAME = "$table.Database.Name"; /** the table name for this class */ public static final String TABLE_NAME = "$table.Name"; /** * @return the map builder for this peer * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static MapBuilder getMapBuilder() throws TorqueException { return getMapBuilder(${table.JavaName}MapBuilder.CLASS_NAME); } #foreach ($col in $table.Columns) #set ( $tfc=$table.JavaName ) #set ( $cfc=$col.JavaName ) #set ( $cup=$col.Name.toUpperCase() ) /** the column name for the $cup field */ public static final String $cup; #end static { #foreach ($col in $table.Columns) #set ( $tfc=$table.JavaName ) #set ( $cfc=$col.JavaName ) #set ( $cup=$col.Name.toUpperCase() ) $cup = "${table.Name}.$cup"; #end if (Torque.isInit()) { try { getMapBuilder(${table.JavaName}MapBuilder.CLASS_NAME); } catch (Exception e) { log.error("Could not initialize Peer", e); } } else { Torque.registerMapBuilder(${table.JavaName}MapBuilder.CLASS_NAME); } }#end ## ends if (!$table.isAlias()) /** number of columns for this peer */ public static final int numColumns = $table.NumColumns; /** A class that can be returned by this peer. */ protected static final String CLASSNAME_DEFAULT = "${package}.$table.JavaName"; /** A class that can be returned by this peer. */ protected static final Class CLASS_DEFAULT = initClass(CLASSNAME_DEFAULT); /** * Class object initialization method. * * @param className name of the class to initialize * @return the initialized class */ private static Class initClass(String className) { Class c = null; try { c = Class.forName(className); } catch (Throwable t) { log.error("A FATAL ERROR has occurred which should not " + "have happened under any circumstance. Please notify " + "the Torque developers <torque-dev@db.apache.org> " + "and give as many details as possible (including the error " + "stack trace).", t); // Error objects should always be propogated. if (t instanceof Error) { throw (Error) t.fillInStackTrace(); } } return c; }#if (!$table.isAlias()) /** * Get the list of objects for a ResultSet. Please not that your * resultset MUST return columns in the right order. You can use * getFieldNames() in BaseObject to get the correct sequence. * * @param results the ResultSet * @return the list of objects * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static List resultSet2Objects(java.sql.ResultSet results) throws TorqueException { try { QueryDataSet qds = null; List rows = null; try { qds = new QueryDataSet(results); rows = getSelectResults(qds); } finally { if (qds != null) { qds.close(); } } return populateObjects(rows); } catch (SQLException e) { throw new TorqueException(e); } catch (DataSetException e) { throw new TorqueException(e); } } #if ($table.ChildrenColumn) #set ($col = $table.ChildrenColumn) #set ( $tfc=$table.JavaName ) #set ( $cfc=$col.JavaName ) #set ( $cup=$col.Name.toUpperCase() ) #if ($col.isEnumeratedClasses()) ## NOTE: this hack requires a class type definition column to ## be a primitive type or a String. Should not be a bad assumption #if ($col.isPrimitive()) #set ($quote = "") #else #set ($quote = '"') #end #foreach ($child in $col.Children) /** A key representing a particular subclass */ public static final $col.JavaNative CLASSKEY_$child.Key.toUpperCase() = $quote$child.Key$quote; /** A class that can be returned by this peer. */ public static final String CLASSNAME_$child.Key.toUpperCase() = "${package}.$child.ClassName"; /** A class that can be returned by this peer. */ public static final Class CLASS_$child.Key.toUpperCase() = initClass(CLASSNAME_$child.Key.toUpperCase()); #end #end #end /** * Method to do inserts. * * @param criteria object used to create the INSERT statement. * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static ObjectKey doInsert(Criteria criteria) throws TorqueException { return $basePrefix${table.JavaName}Peer .doInsert(criteria, (Connection) null); } /** * Method to do inserts. This method is to be used during a transaction, * otherwise use the doInsert(Criteria) method. It will take care of * the connection details internally. * * @param criteria object used to create the INSERT statement. * @param con the connection to use * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static ObjectKey doInsert(Criteria criteria, Connection con) throws TorqueException { #foreach ($col in $table.Columns) #set ( $cup=$col.Name.toUpperCase() ) #if($col.isBooleanInt()) // check for conversion from boolean to int if (criteria.containsKey($cup)) { Object possibleBoolean = criteria.get($cup); if (possibleBoolean instanceof Boolean) { if (((Boolean) possibleBoolean).booleanValue()) { criteria.add($cup, 1); } else { criteria.add($cup, 0); } } } #elseif ($col.isBooleanChar()) // check for conversion from boolean to Y/N if (criteria.containsKey($cup)) { Object possibleBoolean = criteria.get($cup); if (possibleBoolean instanceof Boolean) { if (((Boolean) possibleBoolean).booleanValue()) { criteria.add($cup, "Y"); } else { criteria.add($cup, "N"); } } } #end #end // Set the correct dbName if it has not been overridden // criteria.getDbName will return the same object if not set to // another value so == check is okay and faster if (criteria.getDbName() == Torque.getDefaultDB()) { criteria.setDbName(DATABASE_NAME); } if (con == null) { return BasePeer.doInsert(criteria); } else { return BasePeer.doInsert(criteria, con); } } /** * Add all the columns needed to create a new object. * * @param criteria object containing the columns to add. * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static void addSelectColumns(Criteria criteria) throws TorqueException { #foreach ($col in $table.Columns) #set ( $cup=$col.Name.toUpperCase() ) criteria.addSelectColumn($cup); #end } /** * Create a new object of type cls from a resultset row starting * from a specified offset. This is done so that you can select * other rows than just those needed for this object. You may * for example want to create two objects from the same row. * * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static $table.JavaName row2Object(Record row, int offset, Class cls) throws TorqueException { try { $table.JavaName obj = ($table.JavaName) cls.newInstance(); ${table.JavaName}Peer.populateObject(row, offset, obj); #if ($addSaveMethod) obj.setModified(false); #end obj.setNew(false); return obj; } catch (InstantiationException e) { throw new TorqueException(e); } catch (IllegalAccessException e) { throw new TorqueException(e); } } /** * Populates an object from a resultset row starting * from a specified offset. This is done so that you can select * other rows than just those needed for this object. You may * for example want to create two objects from the same row. * * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static void populateObject(Record row, int offset, $table.JavaName obj) throws TorqueException { try { #set ( $n=0 ) #foreach ($col in $table.Columns) obj.set${col.JavaName}(row.getValue(offset + $n).$col.VillageMethod); #set ( $n = $n + 1 ) #end } catch (DataSetException e) { throw new TorqueException(e); } } /** * Method to do selects. * * @param criteria object used to create the SELECT statement. * @return List of selected Objects * @throws TorqueException Any exceptions caught during processing will be * rethrown wrapped into a TorqueException. */ public static List doSelect(Criteria criteria) throws TorqueException
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -