关于mysql生成策略错误一:org.hibernate.dialect.MySQLDialect does not support sequences

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=com.jboa.entity.SysRoleRight]

错误提示中Could not instantiate id generator [entity-name=com.jboa.entity.SysRoleRight] 

说明了id属性生成策略问题呢,hibernate 提供了许多生成策略比如常用的 assigned,increment,native,sequence 以及默认的 seqhilo

sequence 特点:只能在支持序列的数据库中使用,比如Oracle数据库。

问题出在于这些数据库不支持相关的生成策略。org.hibernate.dialect.MySQLDialect does not support sequences

mysql怎么解决sequence 的错误,用代码来解释

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.bdqn.jboa.entity.SysRoleRight" table="SYS_ROLE_RIGHT" >
        <id name="rfId" type="java.lang.Integer">
            <column name="RF_ID" precision="8" scale="0" />
            <generator class="sequence"></generator> 
        </id>
    </class>
</hibernate-mapping>

用hibernate里面的方法实现,改为下面的配置

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.bdqn.jboa.entity.SysRoleRight" table="SYS_ROLE_RIGHT" >
        <id name="rfId" type="java.lang.Integer">
            <column name="RF_ID" precision="8" scale="0" />
            <generator class="org.hibernate.id.enhanced.SequenceStyleGenerator"> 
                <!--   sequence的名字,默认是"hibernate_sequence"   -->
                <param name="sequence_name">hibernate_sequence</param>  
            </generator>
        </id>
    </class>
</hibernate-mapping>

 这样就解决了

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值