浏览 4081 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-11-20
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-11-20
在映射文件中指定sql-type="..."
|
|
返回顶楼 | |
发表时间:2003-11-20
为什么总是说错误类型?
[schemaexport] Unsuccessful: ORA-00902: 无效数据类型 生成这样的ddl create table Test3 ( id VARCHAR2(32) not null, i Types.TINYINT, primary key (id) ); |
|
返回顶楼 | |
发表时间:2003-11-21
自己顶一下,
我怎么用不了java.sql.Types里的类型, <!------------------hbm--------------------> <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="org.nhweather.data.Test3" dynamic-update="false" dynamic-insert="false" > <id name="id" column="id" type="java.lang.String" length="32" > <generator class="uuid.hex"/> </id> <property name="i" type="int" update="true" insert="true" sql-type="Types.TINYINT" /> </class> </hibernate-mapping> <!--------------build.xml----------------------> <target name="schemaexport"> <taskdef name="schemaexport" classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="class.path"/> <schemaexport properties="hibernate.properties" quiet="no" text="no" drop="no" delimiter=";" output="/root/myDoc/schema-sql/HourData-schema-export.sql"> <fileset dir="bin"> <include name="**/Test3.hbm.xml"/> </fileset> </schemaexport> </target> <!-------------生成这样的ddl------------> drop table Test3 cascade constraints; create table Test3 ( id VARCHAR2(32) not null, i Types.TINYINT, primary key (id) ); <---------------得到这样的结果-------> [schemaexport] Unsuccessful: ORA-00902: 无效数据类型 |
|
返回顶楼 | |
发表时间:2003-11-21
引用 sql-type="Types.TINYINT" sql-type是指定数据库类型,比如sql-type="varchar(32)"... |
|
返回顶楼 | |
发表时间:2003-11-21
说来说去就是不可移植!
我很想知道Dialect里的 register( Types.BIT, "NUMBER(1,0)" ); register( Types.BIGINT, "NUMBER(19,0)" ); register( Types.SMALLINT, "NUMBER(5,0)" ); register( Types.TINYINT, "NUMBER(3,0)" ); register( Types.INTEGER, "NUMBER(10,0)" ); register( Types.CHAR, "CHAR(1)" ); 等等有什么用? |
|
返回顶楼 | |
发表时间:2003-11-21
这些应该是当你没有指定sql-type时的默认类型及类型的capacity。
|
|
返回顶楼 | |
发表时间:2003-11-21
Types.BIT,Types.TINYINT这些是不是默认类型
如果是 能举个简单怎么可以用这些类型的例子吗?最好是Types.TINYINT |
|
返回顶楼 | |
发表时间:2003-11-21
下面是net.sf.hibernate.mapping.Column中的一段代码,没太仔细看,估计意思就是:
如果指定了sql-type,那就取它作为这列的类型,否则自动去判断这列的类型(为java.sql.Types中定义的一个int),再根据这个int值及你在映射中指定的length到你选择的Dialect中去查sql-type。 public String getSqlType(Dialect dialect, Mapping mapping); throws HibernateException { return (sqlType==null); ? dialect.getTypeName( getAutoSqlType(mapping);, getLength(); ); : sqlType; } |
|
返回顶楼 | |