mybatis获取insert参数的类名

时间:2016-01-21 12:10:38

标签: insert mybatis classname

是否可以在insert语句中提取参数的类名? Mybatis提出“没有物业类的吸气剂/装置者......” 这是我试过的

<insert id="insert" parameterType="package.className">
insert into TABLE 
(ID,CLASS_NAME)
values
(#{id},#{property.class.name}
</insert>

1 个答案:

答案 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