개발/백

[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>​