我正在学习mybatis。我可以使用 if 条件,如下所示:
// num is a property of employee
@Inset({
"<script>",
"<if test = 'num == null'>",
"INSERT into version values('333','REOPEN', 3)",
"</if>",
"<if test = 'num != null'>",
"INSERT into version values(#{num},'REOPEN', 3)",
"</if>",
"</script>"
})
void save(Employee e);
现在我尝试在我的 if 标记中使用查询,如下所示:
@Insert({
"<script>",
"WITH (select * from version where id = #{num}) as a",
"<if test = 'a == null'>",
"insert into employee (num, id, name) values (#{num}, #{key}, #val})",
"</if>",
"</script>"
})
void insert(Employee e);
这给出了以下运行时错误
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'a' in 'class com.theopendle.demo.domain.Employee'
at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:421) ~[mybatis-3.4.4.jar:3.4.4]
我尝试使用 IF NOT EXISTS 子句,但这给出了编译时错误。
我正在尝试在表中查找一个值,如果该值不存在,那么我是否要插入一个新行。
我正在使用 Oracle 数据库。请帮忙。