There are a default set of database to java type mappings supported by DAL4j. To add additional types or over-ride how a database type is mappped, the XML configuration file used to drive code generation can be modified. To define custom type mappings, add the following to the XML configuration file between <entitybeangenconfig> ... </entitybeangenconfig>.
<entitybeangenconfig></entitybeangenconfig>
...
<types>
<type>
<databaseType>some_db_type</databaseType>
<javaType>SomeJavaTypeWhichInheritsFromObject</javaType>
</type>
<type>
<databaseType>some_db_type2</databaseType>
<javaType>SomeJavaTypeWhichInheritsFromObject</javaType>
</type>
</types>
...
If a database type with a specific size should have a mapping defined, define it as: db_type(X). Note that type mappings by size of a defined column are always resolved before type mappings w/out a size specified. So, it is possible to have tinyint(1) and tinyint mappings defined.
Here is an example to map tinyint(1) to a boolean and tinyint to Byte
<types>
<type>
<databaseType>tinyint(1)</databaseType>
<javaType>Boolean</javaType>
</type>
<type>
<databaseType>tinyint</databaseType>
<javaType>Byte</javaType>
</type>
</types>
NOTE: The tinyint type mappings above are supported by default.
The default type mappings supported by DAL4j are:
DB_TYPE -> JavaTypeWhichInheritsFromObject
"varchar" -> "String"
"char" -> "String"
"varchar2" -> "String"
"text" -> "String"
"int" -> "Integer"
"int identity" -> "Integer"
"smallint" -> "Integer"
"number" -> "Integer"
"tinyint" -> "Byte"
"tinyint(1)" -> "Boolean"
"bit" -> "Boolean"
"bigint" -> "Long"
"bigint identity" -> "Long"
"datetime" -> "Date"
"date" -> "Date"
"Time" -> "Date"
"smalldatetime" -> "Date"
"timestamp" -> "Date"
"float" -> "Float"
"double" -> "Double"
"decimal" -> "Double"
"image" -> "byte []"
"blob" -> "byte []"