select hibernate_sequence.nextval from dual的解决方法

出现这个异常说明你对应heibernage的映射表里,没有指明序列。解决办法就是指明一个序列,如果没有,就新建一个eg: CREATE SEQUENCE SEQ_TL_COMMON_ITEM INCREMENT BY 1;

<id name="numitemid" type="java.lang.Integer">
<column name="NUMITEMID" precision="20" scale="0" />
<generator class="sequence">
<param name="sequence"></param>
</generator>
</id>

改为
<id name="numitemid" type="java.lang.Integer">
<column name="NUMITEMID" precision="20" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_TL_COMMON_ITEM</param>
</generator>
</id>
我用的是mybatis,<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smics.apps.iw.gv.mapper.ohsapp.IwAppGvVisitInfoMapper"> <sql id="allField"> SELECT v.ID as "id", v.CASE_NO as "caseNo", v.VISIT_TYPE as "visitType", v.VISIT_TOPIC as "visitTopic", v.VISIT_COMPANY as "visitCompany", v.VISIT_TIME as "visitTime", v.CONTACT as "contact", v.GREETER as "greeter", v.CREATE_DATE as "createDate", v.UPDATE_TIME as "updateTime", v.UPDATE_BY as "updateBy", v.STATUS as "status", v.CREATE_BY as "createBy", v.SUBMIT_BY as "submitBy", v.SUBMIT_TIME as "submitTime", v.CHANGE_STEP_TIME as "changeStepTime", v.GATHER_LOC as "gatherLoc", v.INSPECTION_LOC as "inspectionLoc", v.DETAIL_DESC as "detailDesc", v.INLINE_INSPECTION as "inlineInspection", v.OFFLINE_INSPECTION as "offlineInspection", v.ATTENDEE as "attendee", v.INVOLVED_GROUP as "involvedGroup", v.PHONE as "phone" </sql> <select id="getVisitInfoList" resultType="com.smics.apps.iw.gv.entity.IwAppGvVisitInfo"> <include refid="allField"></include> FROM IW_APP_GV_VISIT_INFO v <where> <if test="cm.caseNo != null and cm.caseNo != ''"> and v.CASE_NO like '%${cm.caseNo}%' </if> <if test="cm.loginEmpNo != null and cm.loginEmpNo != ''"> and (select count(*) from IW_APP_GV_SIGN_STATUS s where s.FORM_ID = v.ID and s.EMP_NO = #{cm.loginEmpNo})> 0 </if> <if test="cm.statusList != null"> and v.STATUS in ( <foreach collection="cm.statusList" item="item" separator=","> #{item} </foreach> ) </if> </where> order by v.CREATE_DATE desc </select> <select id="getVisitInfoById" resultType="com.smics.apps.iw.gv.entity.IwAppGvVisitInfo"> <include refid="allField"></include> FROM IW_APP_GV_VISIT_INFO v where v.ID = #{id} order by v.CREATE_DATE desc </select> <select id="getDistinctVisitCompanyList" resultType="java.lang.String"> select distinct VISIT_COMPANY FROM IW_APP_GV_VISIT_INFO </select> <select id="getCaseNoList" resultType="java.lang.String"> select CASE_NO FROM IW_APP_GV_VISIT_INFO where CASE_NO like '${caseNoPre}%' order by CASE_NO desc </select> <insert id="insert" parameterType="com.smics.apps.iw.gv.entity.IwAppGvVisitInfo"> <selectKey keyProperty="cm.id" resultType="long" order="BEFORE"> SELECT hibernate_sequence.nextval FROM dual </selectKey> INSERT INTO IW_APP_GV_VISIT_INFO (ID, CASE_NO, VISIT_TYPE, VISIT_TOPIC, VISIT_COMPANY, VISIT_TIME, CONTACT, GREETER, CREATE_DATE, UPDATE_TIME, UPDATE_BY,STATUS,CREATE_BY,SUBMIT_BY,SUBMIT_TIME,CHANGE_STEP_TIME,GATHER_LOC,INSPECTION_LOC, DETAIL_DESC, INLINE_INSPECTION, OFFLINE_INSPECTION, ATTENDEE,INVOLVED_GROUP,PHONE) VALUES (#{cm.id,jdbcType=NUMERIC}, #{cm.caseNo,jdbcType=VARCHAR}, #{cm.visitType,jdbcType=VARCHAR}, #{cm.visitTopic,jdbcType=VARCHAR},#{cm.visitCompany,jdbcType=VARCHAR},#{cm.visitTime,jdbcType=VARCHAR}, #{cm.contact,jdbcType=VARCHAR}, #{cm.greeter,jdbcType=VARCHAR}, #{cm.createDate,jdbcType=DATE}, #{cm.updateTime,jdbcType=DATE}, #{cm.updateBy,jdbcType=VARCHAR},#{cm.status,jdbcType=VARCHAR}, #{cm.createBy,jdbcType=VARCHAR},#{cm.submitBy,jdbcType=VARCHAR},#{cm.submitTime,jdbcType=DATE}, #{cm.changeStepTime,jdbcType=DATE},#{cm.gatherLoc,jdbcType=VARCHAR},#{cm.inspectionLoc,jdbcType=VARCHAR},#{cm.detailDesc,jdbcType=VARCHAR}, #{cm.inlineInspection,jdbcType=VARCHAR},#{cm.offlineInspection,jdbcType=VARCHAR},#{cm.attendee,jdbcType=VARCHAR}, #{cm.involvedGroup,jdbcType=VARCHAR},#{cm.phone,jdbcType=VARCHAR}) </insert> <update id="updateById"> UPDATE IW_APP_GV_VISIT_INFO SET CASE_NO = #{cm.caseNo,jdbcType=VARCHAR} , VISIT_TYPE= #{cm.visitType,jdbcType=VARCHAR} , VISIT_TOPIC= #{cm.visitTopic,jdbcType=VARCHAR} , VISIT_COMPANY= #{cm.visitCompany,jdbcType=VARCHAR} , CONTACT=#{cm.contact,jdbcType=VARCHAR} , UPDATE_TIME=#{cm.updateTime,jdbcType=DATE} , UPDATE_BY= #{cm.updateBy,jdbcType=VARCHAR} , STATUS= #{cm.status,jdbcType=VARCHAR} , SUBMIT_BY = #{cm.submitBy,jdbcType=VARCHAR} , SUBMIT_TIME = #{cm.submitTime,jdbcType=DATE} , CHANGE_STEP_TIME = #{cm.changeStepTime,jdbcType=DATE} , GATHER_LOC = #{cm.gatherLoc,jdbcType=VARCHAR} , VISIT_TIME = #{cm.visitTime,jdbcType=VARCHAR} , INSPECTION_LOC = #{cm.inspectionLoc,jdbcType=VARCHAR} , DETAIL_DESC = #{cm.detailDesc,jdbcType=VARCHAR} , INLINE_INSPECTION = #{cm.inlineInspection,jdbcType=VARCHAR} , OFFLINE_INSPECTION = #{cm.offlineInspection,jdbcType=VARCHAR} , ATTENDEE = #{cm.attendee,jdbcType=VARCHAR} , INVOLVED_GROUP = #{cm.involvedGroup,jdbcType=VARCHAR} , PHONE = #{cm.phone,jdbcType=VARCHAR} where ID = #{cm.id,jdbcType=NUMERIC} </update> <update id="ignoreUpdateById"> UPDATE IW_APP_GV_VISIT_INFO SET VISIT_TYPE= COALESCE(#{cm.visitType,jdbcType=VARCHAR}, VISIT_TYPE), VISIT_TOPIC= COALESCE(#{cm.visitTopic,jdbcType=VARCHAR}, VISIT_TOPIC), VISIT_COMPANY= COALESCE(#{cm.visitCompany,jdbcType=VARCHAR}, VISIT_COMPANY), VISIT_TIME=COALESCE(#{cm.visitTime,jdbcType=VARCHAR}, VISIT_TIME), CONTACT=COALESCE(#{cm.contact,jdbcType=VARCHAR}, CONTACT), GREETER=#{cm.greeter,jdbcType=VARCHAR}, CREATE_DATE=COALESCE(#{cm.createDate,jdbcType=DATE}, CREATE_DATE), UPDATE_TIME=COALESCE(#{cm.updateTime,jdbcType=DATE}, UPDATE_TIME), UPDATE_BY= COALESCE(#{cm.updateBy,jdbcType=VARCHAR}, UPDATE_BY), STATUS= COALESCE(#{cm.status,jdbcType=VARCHAR}, STATUS), SUBMIT_BY = COALESCE(#{cm.submitBy,jdbcType=VARCHAR}, SUBMIT_BY), SUBMIT_TIME =COALESCE(#{cm.submitTime,jdbcType=DATE}, SUBMIT_TIME), CHANGE_STEP_TIME = COALESCE(#{cm.changeStepTime,jdbcType=DATE}, CHANGE_STEP_TIME), GATHER_LOC = COALESCE(#{cm.gatherLoc,jdbcType=VARCHAR}, GATHER_LOC), INSPECTION_LOC= COALESCE(#{cm.inspectionLoc,jdbcType=VARCHAR}, INSPECTION_LOC), DETAIL_DESC= COALESCE(#{cm.detailDesc,jdbcType=VARCHAR}, DETAIL_DESC), INLINE_INSPECTION= COALESCE(#{cm.inlineInspection,jdbcType=VARCHAR}, INLINE_INSPECTION), OFFLINE_INSPECTION= COALESCE(#{cm.offlineInspection,jdbcType=VARCHAR}, OFFLINE_INSPECTION), ATTENDEE= COALESCE(#{cm.attendee,jdbcType=VARCHAR}, ATTENDEE), INVOLVED_GROUP = COALESCE(#{cm.involvedGroup,jdbcType=VARCHAR}, INVOLVED_GROUP), PHONE = COALESCE(#{cm.phone,jdbcType=VARCHAR}, PHONE) where ID = #{cm.id,jdbcType=NUMERIC} </update> <delete id="deleteById"> delete from IW_APP_GV_VISIT_INFO where ID = #{id} </delete> </mapper>
最新发布
09-10
现在自定义了一个主键生成的注解 @Target({FIELD, METHOD}) @Retention(RUNTIME) @IdGeneratorType(CertAckGenerator.class) public @interface CertAckGen { } 在实体类的某个字段上添加@Id @CertAckGen CertAckGenerator的实现是 public class CertAckGenerator implements IdentifierGenerator { static Logger nirAppLogger= LoggerFactory.getLogger(CertAckGenerator.class); @PersistenceContext private EntityManager entityManager; @Override public Serializable generate(SharedSessionContractImplementor arg0, Object arg1) throws HibernateException { String prefix = "NIRCR"; Connection connection = entityManager.unwrap(Connection.class); //arg0.connection(); try { PreparedStatement ps = connection .prepareStatement("SELECT CERT_ACK_NO_S.nextval as nextval from dual"); ResultSet rs = ps.executeQuery(); if (rs.next()) { int id = rs.getInt("nextval"); nirAppLogger.info("Sequence nextval: " + id); String code = prefix + StringUtils.leftPad("" + id,7,'0'); nirAppLogger.info("Generated Certificate Acknoledge: " + code); return code; } } catch (SQLException e) { nirAppLogger.error("SQLException",e); throw new HibernateException( "Unable to generate Certificate Acknoledge Sequence"); } return null; } } 但是报错了Falling back to Hibernate's default producer after bean creation failure for class com.hpb.nir.parental.dao.CertAckGenerator: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.hpb.nir.parental.dao.CertAckGenerator': Injection of persistence dependencies failed 是什么原因,怎么修改
08-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值