A.1 Basic Types
Hibernate's basic types fall into a number of groupings:
-
-
Simple numeric and Boolean types
-
These
correspond
to the primitive Java types that represent
numbers
,
characters
and Boolean values, or their wrapper classes. They get mapped to appropriate SQL column types (based on the SQL
dialect
in use). They are:
boolean, byte, character, double, float, integer, long, short, true_false,
and
yes_no
. The last two are alternate ways to represent a Boolean value within the database;
true_false
uses the values 'T' and 'F', while
yes_no
uses 'Y' and 'N'.
-
-
String type
-
The Hibernate type
string
maps from
java.lang.String
to the appropriate string column type for the SQL dialect (usually
VARCHAR
, but in Oracle
VARCHAR2
is used).
-
-
Time types
-
Hibernate uses
date
,
time
, and
timestamp
to map from java.util.Date (and subclasses) to appropriate SQL types (e.g.,
DATE
,
TIME
,
TIMESTAMP
).
-
-
Arbitrary precision numeric
-
The Hibernate type
big_decimal
provides a mapping between
java.math.BigDecimal
to the appropriate SQL type (usually
NUMERIC
, but Oracle uses
NUMBER
).
-
-
Localization values
-
The types
locale
,
timezone
, and
currency
are stored as strings (
VARCHAR
or
VARCHAR2
as noted above), and mapped to the
Locale
,
TimeZone
, and
Currency
classes in the
java.util
package.
Locale
and
Currency
are stored using their ISO codes, while
TimeZone
is stored using its
ID
property.
-
-
Class
names
-
The type
class
maps instances of
java.lang.Class
using their fully qualified names, stored in a string column (
VARCHAR
, or
VARCHAR2
in Oracle).
-
-
Byte arrays
-
The type
binary
stores byte arrays in an appropriate SQL binary type.
-
-
Any serializable object
-
The type
serializable
can be used to map any serializable Java object into a SQL binary column. This is the fallback type used when attempting to persist an object that doesn't have a more specific appropriate mapping (and does not implement
PersistentEnum
; see the
next
section).
-
-
JDBC large objects
-
The types
blob
and
clob
provide mappings for the
Blob
and
Clob
classes in the
java.sql
package. Note that there are rather severe restrictions on using these classes. Driver support is rather inconsistent in the first place, and they can't be reused past a single transaction.
|