我在使用 hibernate-tools 反向生成实体的时候, 数据库类型是 tinyint(1)(数据库中时非空属性, 可控属性可以生成为 Byte), 生成的实体属性始终是 boolean , 不太喜欢, 找了些资料, 解决此办法: 在数据库的连接 url 的后面加上 tinyInt1isBit=false 即可
如:
MySQL Type Name |
Return value ofGetColumnClassName |
Returned as Java Class |
BIT(1) (new in MySQL-5.0) |
BIT |
java.lang.Boolean |
BIT( > 1) (new in MySQL-5.0) |
BIT |
byte[] |
TINYINT |
TINYINT |
java.lang.Boolean if the configuration
property tinyInt1isBit is set to true (the
default) and the storage size is 1, orjava.lang.Integer if
not.
|
下面是一些类型转换的例子:
<type-mapping>
<sql-type jdbc-type="INTEGER" hibernate-type="Integer"></sql-type>
<sql-type jdbc-type="DOUBLE" hibernate-type="Double"></sql-type>
<sql-type jdbc-type="FLOAT" hibernate-type="Float"></sql-type>
<sql-type jdbc-type="TINYINT" hibernate-type="Integer"></sql-type>
<sql-type jdbc-type="TIMESTAMP" hibernate-type="Timestamp"></sql-type>
</type-mapping>
Hibernate映射类型 |
java类型 |
标准SQL类型 |
integer |
java.lang.Integer |
INTEGER |
long |
java.lang.Long |
BIGINT |
short |
java.lang.Short |
SMALLINT |
float |
java.lang.Float |
FLOAT |
double |
java.lang.Float |
DOUBLE |
big_decimal |
java.math.BigDecimal |
NUMERIC |
character |
java.lang.String |
CHAR(1) |
string |
java.lang.String |
VARCHAR |
byte |
byte或java.lang.Byte |
TINYINT |
boolean |
boolean或java.lang.Boolean |
BIT |
yes_no |
boolean或java.lang.Boolean |
char(1)('Y'/'N') |
true_false |
boolean或java.lang.Boolean |
char(1)('Y'/'N') |
date |
java.util.Date或java.sql.Date |
DATE |
time |
java.util.Date或java.sql.Time |
time |
timestamp |
java.util.Date或java.sql.timestamp |
TIMESTAMP |
calendar |
java.util.Calendar |
TIMESTAMP |
calendar_date |
java.util.Calendar |
date |
binary |
byte[] |
varbinary或blob |
text |
java.lang.String |
clob |
serializable |
java.io.Serializable实例 |
varbinary或blob |
clob |
java.sql.Clob |
clob |
blob |
java.sql.Blob |
varbinary或blob |
class |
java.lang.Class |
varchar |
locale |
java.util.Locale |
varchar |
timezone |
java.util.TimeZone |
varchar |
currency |
java.util.Currency |
varchar |
Hibernate的TypeFactory的类型内置配置打印如下:
1: java.util.TimeZone---------------------org.hibernate.type.TimeZoneType
2: [Ljava.lang.Byte;---------------------org.hibernate.type.WrapperBinaryType
3: char---------------------org.hibernate.type.CharacterType
4: java.lang.Boolean---------------------org.hibernate.type.BooleanType
5: java.lang.Long---------------------org.hibernate.type.LongType
6: java.sql.Timestamp---------------------org.hibernate.type.TimestampType
7: long---------------------org.hibernate.type.LongType
8: java.lang.Float---------------------org.hibernate.type.FloatType
9: float---------------------org.hibernate.type.FloatType
10: timezone---------------------org.hibernate.type.TimeZoneType
11: time---------------------org.hibernate.type.TimeType
12: imm_serializable---------------------org.hibernate.type.AdaptedImmutableType
13: java.math.BigInteger---------------------org.hibernate.type.BigIntegerType
14: java.lang.Double---------------------org.hibernate.type.DoubleType
15: byte---------------------org.hibernate.type.ByteType
16: java.util.Locale---------------------org.hibernate.type.LocaleType
17: java.lang.Class---------------------org.hibernate.type.ClassType
18: java.sql.Time---------------------org.hibernate.type.TimeType
19: boolean---------------------org.hibernate.type.BooleanType
20: java.io.Serializable---------------------org.hibernate.type.SerializableType
21: text---------------------org.hibernate.type.TextType
22: java.lang.Object---------------------org.hibernate.type.AnyType
23: int---------------------org.hibernate.type.IntegerType
24: imm_binary---------------------org.hibernate.type.AdaptedImmutableType
25: class---------------------org.hibernate.type.ClassType
26: image---------------------org.hibernate.type.ImageType
27: java.lang.Integer---------------------org.hibernate.type.IntegerType
28: dbtimestamp---------------------org.hibernate.type.DbTimestampType
29: java.lang.Short---------------------org.hibernate.type.ShortType
30: imm_calendar_date---------------------org.hibernate.type.AdaptedImmutableType
31: java.sql.Blob---------------------org.hibernate.type.BlobType
32: double---------------------org.hibernate.type.DoubleType
33: java.sql.Date---------------------org.hibernate.type.DateType
34: big_integer---------------------org.hibernate.type.BigIntegerType
35: java.lang.Byte---------------------org.hibernate.type.ByteType
36: materialized_clob---------------------org.hibernate.type.MaterializedClobType
37: yes_no---------------------org.hibernate.type.YesNoType
38: char[]---------------------org.hibernate.type.CharArrayType
39: imm_dbtimestamp---------------------org.hibernate.type.AdaptedImmutableType
40: java.util.Currency---------------------org.hibernate.type.CurrencyType
41: binary---------------------org.hibernate.type.BinaryType
42: java.util.Calendar---------------------org.hibernate.type.CalendarType
43: locale---------------------org.hibernate.type.LocaleType
44: clob---------------------org.hibernate.type.ClobType
45: object---------------------org.hibernate.type.AnyType
46: date---------------------org.hibernate.type.DateType
47: imm_time---------------------org.hibernate.type.AdaptedImmutableType
48: [Ljava.lang.Character;---------------------org.hibernate.type.CharacterArrayType
49: currency---------------------org.hibernate.type.CurrencyType
50: character---------------------org.hibernate.type.CharacterType
51: timestamp---------------------org.hibernate.type.TimestampType
52: short---------------------org.hibernate.type.ShortType
53: calendar_date---------------------org.hibernate.type.CalendarDateType
54: java.util.GregorianCalendar---------------------org.hibernate.type.CalendarType
55: java.sql.Clob---------------------org.hibernate.type.ClobType
56: java.lang.Character---------------------org.hibernate.type.CharacterType
57: big_decimal---------------------org.hibernate.type.BigDecimalType
58: Character[]---------------------org.hibernate.type.CharacterArrayType
59: serializable---------------------org.hibernate.type.SerializableType
60: calendar---------------------org.hibernate.type.CalendarType
61: materialized_blob---------------------org.hibernate.type.MaterializedBlobType
62: Byte[]---------------------org.hibernate.type.WrapperBinaryType
63: imm_date---------------------org.hibernate.type.AdaptedImmutableType
64: [B---------------------org.hibernate.type.BinaryType
65: integer---------------------org.hibernate.type.IntegerType
66: java.lang.String---------------------org.hibernate.type.StringType
67: [C---------------------org.hibernate.type.CharArrayType
68: java.util.Date---------------------org.hibernate.type.TimestampType
69: true_false---------------------org.hibernate.type.TrueFalseType
70: blob---------------------org.hibernate.type.BlobType
71: imm_calendar---------------------org.hibernate.type.AdaptedImmutableType
72: imm_timestamp---------------------org.hibernate.type.AdaptedImmutableType
73: string---------------------org.hibernate.type.StringType
74: java.math.BigDecimal---------------------org.hibernate.type.BigDecimalType
75: byte[]---------------------org.hibernate.type.BinaryType
|