Hibernate HBM里的 数据库类型

Hibernate 的配置文件里的 SQL-type

在 HSQL里 不指定 SqL -TYPE 当 数据类型为 java.util.Date的时候 默认使用 datatime 作为 数据库类型

但是在 sql 2005 里 会自动转变为 时间戳 timestamp 对应的 java 类型为 java.sql.timestamp

哪怕是使用 Calendar 也会变成 这个 时间戳类型

时间戳是不能 直接 insert 操作的

所以会 在初始化数据的时候报错
(使用 sql 初始化)

因此需要 对 sql -type 进行数据类型的指定

Hibernate映射类型 Java类型 标准SQL类型 大小
integer/int java.lang.Integer/int INTEGER 4字节
long java.lang.Long/long BIGINT 8字节
short java.lang.Short/short SMALLINT 2字节
byte java.lang.Byte/byte TINYINT 1字节
float java.lang.Float/float FLOAT 4字节
double java.lang.Double/double DOUBLE 8字节
big_decimal java.math.BigDecimal NUMERIC
character java.lang.Character/java.lang.String/char CHAR(1) 定长字符
string java.lang.String VARCHAR 变长字符
boolean/ yes_no/true_false java.lang.Boolean/Boolean BIT 布尔类型
date java.util.Date/java.sql.Date DATE 日期
timestamp java.util.Date/java.sql.Timestamp TIMESTAMP 日期
calendar java.util.Calendar TIMESTAMP 日期
calendar_date java.util.Calendar DATE 日期
binary byte[] BLOB BLOB
text java.lang.String TEXT CLOB
serializable 实现java.io.Serializablej接口的任意Java类 BLOB BLOB
clob java.sql.Clob CLOB CLOB
blob java.sql.Blob BLOB BLOB
class java.lang.Class VARCHAR 定长字符
locale java.util.Locale VARCHAR 定长字符
timezone java.util.TimeZone VARCHAR 定长字符
currency java.util.Currency VARCHAR 定长字符

你可能感兴趣的:(java,sql,Hibernate)