首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

hibernate oracle11g 没法创建生成表

2012-09-10 
hibernate oracle11g 无法创建生成表数据库版本为 oracle11ghibernate版本为 hibernate-release-4.1.6.Fin

hibernate oracle11g 无法创建生成表
数据库版本为 oracle11g
hibernate版本为 hibernate-release-4.1.6.Final
数据库中名为ORCL,创建了一个用户为 hibernate 密码为hibernate 并给了dba权限。

相关文件

User.java

Java code
package com.hibernate;import java.util.Date;public class User {    private String id;    private String name;    private String password;    private Date createDate;    private Date expireDate;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Date getCreateDate() {        return createDate;    }    public void setCreateDate(Date createDate) {        this.createDate = createDate;    }    public Date getExpireDate() {        return expireDate;    }    public void setExpireDate(Date expireDate) {        this.expireDate = expireDate;    }    }


User.hbm.xml
Java code
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping >   <class name="com.hibernate.User" table="t_user">       <id name="id" column="user_id">           <generator class="uuid"/>       </id>       <property name="name" column="user_name" />       <property name="password" />       <property name=""></property>       <property name="createDate" />       <property name="expireDate" />   </class></hibernate-mapping>


hibernate.cfg.xml
Java code
<!DOCTYPE hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>        <property name="hibernate.connection.username">hibernate</property>        <property name="hibernate.connection.password">hibernate</property>        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:ORCL</property>        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>                <mapping resource="com/hibernate/User.hbm.xml" />    </session-factory></hibernate-configuration>


ExportDb.java
Java code
package com.hibernate;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ExportDb {    /**     * @param args     */    public static void main(String[] args) {            //默认读取hibernate.cfg.xml文件        Configuration cfg=new Configuration().configure();                SchemaExport export=new SchemaExport(cfg);                export.create(true,true);            }}


执行后报错:

2012-8-27 23:28:56 org.hibernate.annotations.common.Version <clinit>


INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
2012-8-27 23:28:56 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.6.Final}
2012-8-27 23:28:56 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
2012-8-27 23:28:56 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
2012-8-27 23:28:56 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
2012-8-27 23:28:56 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
2012-8-27 23:28:56 org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: com/hibernate/User.hbm.xml
2012-8-27 23:28:56 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
2012-8-27 23:28:56 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:687)
at org.hibernate.mapping.Column.setName(Column.java:86)
at org.hibernate.cfg.HbmBinder.bindColumns(HbmBinder.java:1143)
at org.hibernate.cfg.HbmBinder.bindColumnsOrFormula(HbmBinder.java:1586)
at org.hibernate.cfg.HbmBinder.bindSimpleValue(HbmBinder.java:1181)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2164)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2122)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:406)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:321)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:172)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3408)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3400)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3388)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1341)
at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:931)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:188)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:156)
at com.hibernate.ExportDb.main(ExportDb.java:16)

请教大侠指点一二,不胜感激~

[解决办法]
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0

String越界,

User.hbm.xml里的 <property name=""></property>是干嘛用的?去掉试试

[解决办法]
表字段五个,你映射文件却配置了六个。
[解决办法]
日志楼主标注红色 Configured SessionFactory: null 这个应该没有啥问题。
SchemaExport这个类不知道是不是创建了sessionfactory
sessionFactory = configuration.buildSessionFactory();

<property name=""></property> 这个是什么东东?



<property name="hbm2ddl.auto">update</property>
<!-- 显示Hibernate持久化操作所生成的SQL -->
<property name="show_sql">true</property>

这些东西配置了没有呢?

热点排行