是否可以在insert语句中提取参数的类名? Mybatis提出“没有物业类的吸气剂/装置者......” 这是我试过的
<insert id="insert" parameterType="package.className">
insert into TABLE
(ID,CLASS_NAME)
values
(#{id},#{property.class.name}
</insert>
答案 0 :(得分:0)
尝试实验。
Java -
public class Test {
private String id;
private PropertyClass property;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public PropertyClass getProperty() {
return property;
}
public void setProperty(PropertyClass property) {
this.property = property;
}
public String getPropertyClassName(){
return this.property.getClass().getName();
}
}
Mybatis -
<insert id="insert" parameterType="package.className">
insert into TABLE
(ID,CLASS_NAME)
values
(#{id},#{propertyClassName}
</insert>
我发现Mybatis来源。
org.apache.ibatis.reflection.Reflector - 445 Line
public boolean hasGetter(String propertyName) {
return getMethods.keySet().contains(propertyName);
}
此处连接属性。 ex)#{propertyClassName}
但是getMethods没有未声明的方法 ex)getClass(),notify().... etc