日期:2014-05-17  浏览次数:20749 次

hibernate oracle 主键自增长问题
项目中一直使用mysql做数据库,无奈最近要求兼容oracle,使用了Hibernate,作为持久层框架。
保存数据的时候报错信息如下:
org.springframework.orm.hibernate3.HibernateSystemException: Dialect does not support identity key generation; nested exception is org.hibernate.MappingException: Dialect does not support identity key generation
    org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
    org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
    org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)

实体注解如下:

@Id
// 设置主键自动增长
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ycjf_id")
public long getId() {
return id;
}


请教大家如果想同时兼容mysql和oracle,并且支持主键自增长应该怎样修改配置?





------解决方案--------------------
oracle中没有自增长的,这个你需要用序列