"ID" INTEGER NOT NULL,
"inputname" VARCHAR2(100),
"inputcode" VARCHAR2(100),
CONSTRAINT PK_FE_FIELD_INPUT PRIMARY KEY ("ID")
)
注意看,字段名是加了引号的,查看一下创建后的表,在数据库中显示确实是小写的。
所以会报上面的异常,hibernate会自动将字段名改成大写。
oracle是不区分大小写的,会自动转换成大写。
CREATE TABLE RISK.FE_FIELD_INPUT (ID INTEGER NOT NULL,
inputname VARCHAR2(100),
inputcode VARCHAR2(100),
CONSTRAINT PK_FE_FIELD_INPUT PRIMARY KEY ("ID")
)
Oracle的数据库的对象名,就是不区分大小写的啊。除非你建表的时候用双引号引起来的,比如"tablename"(强烈不建议这么做)
否则,TableName 、 TABLENAME、tablename
都是一样的,在oracle系统中都是以 大写 TABLENAME 方式存储的表名信息。
hibernate配置时每个<class>对映一对“java类——数据库表”映射,name属性写完整类名,table属性写表名。按你要求,设<class name="xxx.xxx.xxx.T_XXX" table="T_XXX" ">这样就保持原样了。
实际上不必强求名字一致,所谓映射就是“画条线连接两个现成的东西”,你随便选个类、再选个数据结构相同的表,把它们名字填进去,都是对的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)