转载地址:http://chris-rock-f0.iteye.com/blog/666217
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 | 定长字符 |
本文详细介绍了Hibernate中SQL-Type的重要性,特别是在处理不同数据库如HSQL与SQL Server 2005时,针对Java.util.Date类型自动转换的问题。文章提供了Hibernate映射类型与标准SQL类型之间的对照表,帮助开发者正确配置避免数据初始化错误。
6253

被折叠的 条评论
为什么被折叠?



