개발/백

[JAVA]xml오류-There is no getter for property named 'name' in 'class java.lang.String', 파라미터 전달 제대로 안될 때

다당근 2021. 11. 29. 14:13

 

 

 

 

파라미터 하나를 보냈는데

There is no getter for property named 'name' in 'class java.lang.String' 라는 오류가 뜰 때,

 

int getList(String name);
<select id="getList" resultType="vo">
        SELECT
            count(*)
        FROM
            table
        WHERE
        	id = #{name}
</select>

 

방법 1. #{name} 을 다음과 같이 #{value} 로 변경해주면 된다.

 

<select id="getList" resultType="vo">
        SELECT
            count(*)
        FROM
            table
        WHERE
        	id = #{value}
</select>

 

방법 2. getter 가 있는 VO를 만들어 파라미터로 넘긴다.

getter 는 다음과 같이 만들 수 있다.

 

1. 롬복lombok 이용하기

@Getter
public myVO{
	private String name;
}

2. 직접 만들기

public myVO{
	private String name;
    
    public String getName(){
    	return this.name;
    }
}

 

mapper.xml 에는 그대로 #{name} 으로 작성

<select id="getList" parameterType="myVO" resultType="vo">
        SELECT
            count(*)
        FROM
            table
        WHERE
        	id = #{name}
</select>​