반응형
mybatis Element type "selectkey" must be declared
원인
- DTD 설정 오류: MyBatis 매퍼 XML 파일의 DOCTYPE 선언 부분이 잘못되었거나 누락된 경우.
- MyBatis 버전 호환성 문제: MyBatis 버전과 사용 중인 DTD가 호환되지 않는 경우.
조치 1
- MyBatis 매퍼 XML 파일의 최상단에 올바른 DOCTYPE 선언이 포함되어 있는지 확인해야 합니다. 다음은 MyBatis 3.x 버전에서 사용하는 올바른 DOCTYPE 선언입니다:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
조치 2
- 전자정부프레임워크 SAMPLE 테이블을 예제로 진행했습니다.
<mapper namespace="egovframework.example.sample.service.impl.SampleMapper">
<resultMap id="sample" type="egovframework.example.sample.service.SampleVO">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="useYn" column="use_yn"/>
<result property="regUser" column="reg_user"/>
</resultMap>
<insert id="insertSample" parameterType="SampleVO">
<selectKey keyProperty="id" resultType="string" order="BEFORE">
<![CDATA[
SELECT 'SAMPLE-' || LPAD(NVL(MAX(TO_NUMBER(SUBSTR(id, 8))), 0) + 1, 5, '0') AS id
FROM SAMPLE
]]>
</selectKey>
INSERT INTO SAMPLE
( ID
, NAME
, DESCRIPTION
, USE_YN
, REG_USER )
VALUES ( #{id}
, #{name}
, #{description}
, #{useYn}
, #{regUser} )
</insert>
</mapper>
반응형
'dev > java(egov)' 카테고리의 다른 글
[mybatis] insert 후 key값 반환 selectKey (0) | 2024.05.26 |
---|---|
[mybatis] Could not set property 'id' of 'class egovframework.example.sample.service.SampleVO' with value '1' (0) | 2024.05.26 |
intellij 전자정부프레임워크 spring boot 설정 (0) | 2024.05.01 |
전자정부프레임워크(egov) 4.2 웹프로젝트 생성 (0) | 2024.04.14 |
전자정부프레임워크(egov) 4.1 웹프로젝트 생성 (0) | 2024.04.14 |