Exception in thread "main" org.hibernate.MappingException: could not instantiate id generator [entity-name=com.xss.domain.Employee]at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:132)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:175)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:224)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327)
at com.xss.view.testMain.main(testMain.java:15)
Caused by: org.hibernate.MappingException: could not interpret id generator strategy: sequence
at org.hibernate.id.IdentifierGeneratorFactory.getIdentifierGeneratorClass(IdentifierGeneratorFactory.java:151)
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:124)
... 4 more
<?xml version="1.0" encoding="UTF-8"?>
<!-- 該文件要清楚地表述出類和表的對應關係 -->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- package :表示該類在哪一個包下 -->
<hibernate-mapping package="com.xss.domain">
<!-- name:表示類名;table:表示該類和哪一個表映射 -->
<class name="Employee" table="employee">
<!-- id 元素專門用於指定主鍵是如何生成,hibernate設計者認爲,我們每一個表都應該擁有一個主鍵 -->
<id name="id" column="id" type="java.lang.Integer">
<!-- 指定主鍵生成策略 -->
<generator class="sequence ">
<param name="sequence">EMP_SEQ</param>
</generator>
</id>
<!-- 配置其他屬性 -->
<property name="name" type="java.lang.String">
<column name="name" not-null="false"/>
</property>
<property name="email" type="java.lang.String">
<column name="email" not-null="false"/>
</property>
<property name="hiredate" type="java.util.Date">
<column name="hiredate" not-null="false"/>
</property>
</class>
</hibernate-mapping>
錯誤是因爲:
<id name="id" column="id" type="java.lang.Integer">
<!-- 指定主鍵生成策略 -->
<generator class="sequence ">
<param name="sequence">EMP_SEQ</param>
</generator>
</id>
class="sequence"多了一個空格
修改以後編譯,運行正常!!