log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.MappingException: could not instantiate id generator
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:97)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:152)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:182)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
at com.ltd.blog.util.SessionFactoryBuild.getSessionFactory(SessionFactoryBuild.java:16)
at com.ltd.blog.util.SessionFactoryBuild.<clinit>(SessionFactoryBuild.java:9)
at com.ltd.blog.test.TestHbn.saveTeacherAndCourse(TestHbn.java:33)
at com.ltd.blog.test.TestHbn.main(TestHbn.java:104)
Caused by: org.hibernate.MappingException: could not interpret id generator strategy: incremet
at org.hibernate.id.IdentifierGeneratorFactory.getIdentifierGeneratorClass(IdentifierGeneratorFactory.java:108)
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:91)
... 7 more
Exception in thread "main" java.lang.NullPointerException
at com.ltd.blog.test.TestHbn.saveTeacherAndCourse(TestHbn.java:33)
at com.ltd.blog.test.TestHbn.main(TestHbn.java:104)
错误代码

解决方案 »

  1.   

    这句的意思,就是你的id序列号生成器有问题,
    帖出更多的出错信息,不要只帖这一句。最好帖出来你的hibernate影射文件。
      

  2.   

    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    <class name="com.ltd.blog.bean.BlogBean" table="Blogs">
    <id name="blogId" type="long" column="Blog_id">
    <generator class="incremet"></generator>
    </id>
    <property name="userName" type = "string">
    <column name="username" length ="20"></column>
    </property>
    <property name="password" type = "string">
    <column name="password" length= "10"></column>
    </property>


    <property name="subject" type ="string">
    <column name="subject" length= "20"></column>
    </property>
    <property name="dayInfo" type="calendar" column = "dayinfo"></property>

    <set name="articles" inverse ="true" lazy ="false" batch-size ="2" cascade ="all-delete-orphan" order-by="publishTime desc">
    <key column ="blog_id" ></key>
    <one-to-many class = "com.ltd.blog.bean.BlogBean"/>
    </set>
    <set name ="feedBacks" inverse = "true" lazy = "false" batch-size = "2" cascade ="none" order-by="feedBackTime desc">
    <key column = "blog_id"></key>
    <one-to-many class = "com.ltd.blog.bean.FeedBackBean"/>
    </set> </class>
    </hibernate-mapping>
      

  3.   

    <generator class="native"> </generator> 
    或 indentity因为你的主键是自动增长的. 
    increment 生成策略 是hibernate 生成一个值 然后插到你的数据库. 所以报错。
      

  4.   

    type="java.util.long"
    你数据库里面pk是怎么设置的?
      

  5.   

    <generator class="native"> </generator> 你的是什么数据库?
      

  6.   

    数据库里好象设置的int。应该不冲突把
      

  7.   

    我也报了此异常,用的是MySql,谢谢!帮忙看一下
    org.hibernate.MappingException: could not interpret id generator strategy: naitve
    配置文件:
    <hibernate-mapping>
    <class name="com.sh.pojo.TCorporation" table="t_corporation"
    catalog="test">
    <id name="corpId" type="java.lang.String">
    <column name="corp_id" length="10" />
    <generator class="naitve" />
    </id>
    <property name="corpName" type="java.lang.String">
    <column name="corp_name" length="20" />
    </property>
    <property name="corpAdd" type="java.lang.String">
    <column name="corp_add" length="50" />
    </property>
    <set name="TEmployees" inverse="false">
    <key>
    <column name="corp_id" length="10" />
    </key>
    <one-to-many class="com.sh.pojo.TEmployee" />
    </set>
    </class>
    </hibernate-mapping>POJO:
    package com.sh.pojo;import java.util.HashSet;
    import java.util.Set;/**
     * TCorporation generated by MyEclipse Persistence Tools
     */public class TCorporation implements java.io.Serializable { // Fields private String corpId; private String corpName; private String corpAdd; private Set TEmployees = new HashSet(0); // Constructors /** default constructor */
    public TCorporation() {
    } /** minimal constructor */
    public TCorporation(String corpId) {
    this.corpId = corpId;
    } /** full constructor */
    public TCorporation(String corpId, String corpName, String corpAdd,
    Set TEmployees) {
    this.corpId = corpId;
    this.corpName = corpName;
    this.corpAdd = corpAdd;
    this.TEmployees = TEmployees;
    } // Property accessors public String getCorpId() {
    return this.corpId;
    } public void setCorpId(String corpId) {
    this.corpId = corpId;
    } public String getCorpName() {
    return this.corpName;
    } public void setCorpName(String corpName) {
    this.corpName = corpName;
    } public String getCorpAdd() {
    return this.corpAdd;
    } public void setCorpAdd(String corpAdd) {
    this.corpAdd = corpAdd;
    } public Set getTEmployees() {
    return this.TEmployees;
    } public void setTEmployees(Set TEmployees) {
    this.TEmployees = TEmployees;
    }}
      

  8.   

    你看你的increment