最近学习hibernate4遇到的问题记录一下,数据库使用 的是mysql5.6.23
1.Exception in thread "main" org.hibernate.MappingException: Could not instantiate id generator [entity-name=com.share.domain.User]
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:123)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:225)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:323)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
at com.share.util.HibernateUtil.getSessionFactory(HibernateUtil.java:42)
at com.share.util.HibernateUtil.main(HibernateUtil.java:48)
Caused by: org.hibernate.MappingException: Could not interpret id generator strategy [increament]
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.getIdentifierGeneratorClass(DefaultIdentifierGeneratorFactory.java:140)
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:114)
... 5 more
这个问题产生的原因是实体类User中的主键id生成策略导致
@Id
@GenericGenerator(name = "generator", strategy = "increament")//错误位置
// id属性自增
@GeneratedValue(generator = "generator")
@Column(name = "id", nullable = false, unique = true)
private long id;
将上面的increament改为native即可