1. java.lang.String 或 hibernate string
<property name="description" type="java.lang.String"></property>
或
<property name="description" type="string"></property>
建表时:
mysql-->description varchar(255)
oracle-->description varchar2(255)
- 从上文中可以发现,当property type值为java.lang.String或string时,如果没有为property执行length属性,则hibernate默认会将字段设置为255个字符长度
- mysql下,如果设置length的值<=255,则hibernate建表时生成的字段类型是varchar(len),如果length的值>255,则hibernate建表时生成的字段类型是longtext
- oracle下,如果设置length的值<=4000,则hibernate建表时生成的字段类型是varchar2(len),如果length的值>4000,则hibernate建表时生成的字段类型是long,注意当前的long不是长整型,其最多可以存储2GB数据。
2. hibernate text
<property name="description" type="text"></property>
建表时:
mysql-->description longtext
oracle-->description varchar(255),但是去数据库查看ddl,发现是description varchar2(255)
- oracle下,如果length属性的值最大为4000,如果超过4000,抛异常:ERROR: ORA-00910: 指定的长度对于数据类型而言过长
- oracle下,hibernate输出的建表语句都是description varchar(len),但是去数据库查看ddl,发现是description varchar2(len),这里需要注意的
3. java.sql.Clob
<property name="description" type="java.sql.Clob"></property>
建表时:
mysql-->description longtext
oracle-->description clob
- mysql下,即使更改length的值,hibernate建表时,字段类型依然是longtext
- oracle下,即使更改length的值,hibernate建表时,字段类型依然是clob
4. java.util.Date 或 java.sql.Timestamp 或 hibernate timestamp
<property name="expireTime" type="java.util.Date"/>
或
<property name="expireTime" type="java.sql.Timestamp"/>
或
<property name="expireTime" type="timestamp"/>
建表时:
mysql-->expireTime datetime
oracle-->expireTime date
1. mysql下,datetime类型的字段可以存储日期和时间,如下图所示:
2. oracle下,date类型字段可以存储日期和时间,如下图所示:
5. java.sql.Date 或 hibernate date
<property name="expireTime" type="java.sql.Date"/>
或
<property name="expireTime" type="date"/>
建表时:
mysql-->expireTime date
oracle-->expireTime date
1. mysql下,date类型的字段仅仅可以存储日期,如下图所示:
2. oracle下,date类型字段可以存储日期和时间,如下图所示:
6. java.sql.Time 或 hibernate time
<property name="expireTime" type="java.sql.Time"/>
或
<property name="expireTime" type="time"/>
建表时:
mysql-->expireTime time
oracle-->expireTime date
1.mysql下,time类型字段仅仅可以存储时间,如下图所示:
2. oracle下,date类型字段可以存储日期和时间,如下图所示:
来源:oschina
链接:https://my.oschina.net/u/2290965/blog/670926