Package simpleorm.dataset
Class SFieldBigDecimal
java.lang.Object
simpleorm.dataset.SFieldMeta
simpleorm.dataset.SFieldScalar
simpleorm.dataset.SFieldBigDecimal
- All Implemented Interfaces:
- Serializable
Represents BigDecimal field meta data. Default SQL type is
 NUMERIC(precission, scale), which is roughly sql-92.
 
What is the best way to represent money ammounts exactly? Scaled longs are no good for direct end user queries on the database. Doubles tend to loose precission due to Java truncating instead of rounding -- things will not balance. And BigDecimals are inefficient and a real pain to use. Your choice.
- See Also:
- 
Field SummaryFields inherited from class simpleorm.dataset.SFieldScalarsqlDataTypeOverride, theGeneratorFields inherited from class simpleorm.dataset.SFieldMetaquoteName
- 
Constructor SummaryConstructorsConstructorDescriptionSFieldBigDecimal(SRecordMeta meta, String columnName, int precission, int scale, SFieldFlags... pvals) Note that precission and scale parameters only affect how the tables are created.
- 
Method SummaryModifier and TypeMethodDescriptionprotected ObjectConverts the parameter from the raw type parameter to the correct internal Object type that is stored in the data set.This is basically SQL 2, and fairly database independent, we hope.intintgetScale()booleanisFKeyCompatible(SFieldScalar field) intqueryFieldValue(ResultSet rs, int sqlIndex) Issues a JDBC get*() on the result set for the field and converts the database type to the appropriate internal type, eg, Double for a double field.Methods inherited from class simpleorm.dataset.SFieldScalargetColumnName, getGeneratorMode, getGeneratorParameter, getMaxSize, getReferences, getTheGenerator, isForeignKey, isGenerated, isMandatory, isNotOptimisticLocked, isPrimary, overrideSqlDataType, setGeneratorMode, setMaxSize, setTheGenerator, toLongerStringMethods inherited from class simpleorm.dataset.SFieldMetaaddFlag, addValidator, doValidate, equals, getFieldName, getFlags, getRecordMeta, getUserProperties, getUserProperty, getValidators, hashCode, isDescriptive, isUnqueried, nextGeneratedValue, putUserProperty, readResolve, setQuoted, toString, writeFieldValue, writeFieldValue
- 
Constructor Details- 
SFieldBigDecimalpublic SFieldBigDecimal(SRecordMeta meta, String columnName, int precission, int scale, SFieldFlags... pvals) Note that precission and scale parameters only affect how the tables are created. The scale that is actually returned is up to JDBC. And then you are responsible for dealing with rounding issues.
 
- 
- 
Method Details- 
getPrecisionpublic int getPrecision()
- 
getScalepublic int getScale()
- 
queryFieldValueDescription copied from class:SFieldMetaIssues a JDBC get*() on the result set for the field and converts the database type to the appropriate internal type, eg, Double for a double field. The first column has sqlIndex==1.- Specified by:
- queryFieldValuein class- SFieldMeta
- Throws:
- Exception
 
- 
convertToDataSetFieldTypeDescription copied from class:SFieldMetaConverts the parameter from the raw type parameter to the correct internal Object type that is stored in the data set. Returns the object if no conversion necessary. Used bySRecordInstance.setObjectetc., Not getObject.- Specified by:
- convertToDataSetFieldTypein class- SFieldMeta
- Throws:
- Exception
 
- 
defaultSqlDataTypeThis is basically SQL 2, and fairly database independent, we hope. Note that "BIGDECIMAL" for Oracle means a text field that can contain over 2K characters!- Specified by:
- defaultSqlDataTypein class- SFieldScalar
 
- 
isFKeyCompatible
- 
javaSqlTypepublic int javaSqlType()- Specified by:
- javaSqlTypein class- SFieldScalar
- Returns:
- int constant from java.sql.Types, used for setting sql datatype with null values
 
 
-