日期:2014-05-20  浏览次数:20871 次

配置hibernate问题
我配置hibernate
其中hibernate.cfg.xml配置如下
XML code

<session-factory>
        <!--配置数据库连接 -->
        <property name="connection.url">
            jdbc:oracle:thin:@localhost:1521:orcl
        </property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tigger</property>
        <property name="connection.driver_class">
            oracle.jdbc.driver.OracleDriver
        </property>
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- 是否打印Sql语句 -->
        <property name="hibernate.show_sql">true</property>

        <mapping resource="com/szy/hibernate/user.hbm.xml" />
    </session-factory>



user.hbm.xml文件如下配置
XML code
<hibernate-mapping package="com.szy.hibernate">
 <class name="User" table="t_user">
  <id column="ID" name="id" length="10" type="java.lang.String">
   <generator class="assigned"/>
  </id>
  <property column="USERNAME" name="username" type="java.lang.String" length="20" not-null="true" unique="true"/>
  <property column="PASSWORD" name="password" type="java.lang.String" length="20"/>
  <property column="AGE" generated="never" lazy="false" name="age" type="java.lang.Integer"/>
 </class>
</hibernate-mapping>


数据库是通过以下代码生成的
Java code
Configuration config=new Configuration().configure();
        SchemaExport export=new SchemaExport(config);
        export.create(true, true);


测试代码如下
Java code
User user=new User();
        user.setId("001");
        user.setUsername("coolszy");
        user.setPassword("test");
        user.setAge(21);
        
        Session session=HibernateUtil.getSession();
        Transaction ts=session.beginTransaction();
        session.save(user);
        ts.commit();


其中HibernateUtil是过去session的工具类
运行时老是报下面的错误

Exception in thread "main" java.lang.AbstractMethodError:
oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
at com.szy.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:10)
at com.szy.hibernate.Test.main(Test.java:14)

不知怎么解决,请高手赐教

------解决方案--------------------
<property column="PASSWORD" name="password" type="java.lang.String" length="20"/>
type是指hibernate的数据类型吧,应该写成string
------解决方案--------------------
楼上正解