음.. selectkey를 쓰는법은 알고있습니다. 제가 원하는건
<insert ........>
<if test="#{key_v} = null">
<selectKey resultType="string" keyProperty="key_value" order="BEFORE"
select count(*)from tab
</selectKey>
</if>
insert into tab (num) value(#{key_value})
</insert>
입니다.
if문안에 selectkey를 넣어서 넘어온값이 null이면 selectkey의 조회값이 null이 아니면 넘어온값을 넣고싶습니다. 현재 설정을하면
The content of element type "if" must match "(include|trim|where|set|foreach|choose|if|bind)". 라고 오류가 나오는대 문법상의 문제인지 아니면 if문안에 selectkey를 넣을수 없는건지 알고싶어서요.
문법 오류입니다.
selectKey 값이 null 일 때 특정 값을 넣는 것이라면, 그냥 아래처럼 NVL 함수 쓰는 것이 직관적일 것 같습니다.
<
insert
....>
<selectKey keyProperty=
"key"
resultType=
"int"
order
=
"BEFORE"
>
SELECT
no
FROM
DUAL
</selectKey>
INSERT
INTO
[TABLE_NALE] (
[target_field1], [target_field2], [target_field3]....
)
VALUES
(
NVL(#{
key
}, #{value1}), #{value2}, #{value3}...
)
</
insert
>