def type_map
length = Property::DEFAULT_LENGTH
precision = Property::DEFAULT_PRECISION
scale = Property::DEFAULT_SCALE_BIGDECIMAL
@type_map ||= {
Integer => { :primitive => 'NUMBER', :precision => precision, :scale => 0 },
String => { :primitive => 'VARCHAR2', :length => length },
Class => { :primitive => 'VARCHAR2', :length => length },
BigDecimal => { :primitive => 'NUMBER', :precision => precision, :scale => nil },
Float => { :primitive => 'BINARY_FLOAT', },
DateTime => { :primitive => 'DATE' },
Date => { :primitive => 'DATE' },
Time => { :primitive => 'DATE' },
TrueClass => { :primitive => 'NUMBER', :precision => 1, :scale => 0 },
Types::Object => { :primitive => 'CLOB' },
Types::Text => { :primitive => 'CLOB' },
}.freeze
end