Daily Notebook

[MyBatis] Could not resolve type alias ''

by 배부른코딩로그
💡Could not resolve type alias '?' 오류에 대해 트러블슈팅 해보자!

목표

  • 해당 오류가 발생했을 때, 적절하게 대응할 수 있다.

 

Mapper XML에서 parameterType에 DTO 이름을 설정해주었는데 다음과 같은 오류가 발생했다.

@Table Domain DTO 클래스명을 기입했음에도 위 오류가 발생했는데,

이유는 같단했다.

 

원인

alias(별칭) 설정
MyBatis는 alias를 하나하나 친절하게 명시해줘야 한다!!

 

@Table 혹은 @Entity 어노테이션을 기입만 해주면 자동으로 연동되면 좋겠지만....

사실 이 기능을 제공한다. 아래의 해결방법에서 살펴보자 😁

 

 

해결방법

1) application.yml, MyBatis type-aliases-package설정

mybatis.type-aliases-package=com.example.domain

위와 같이 properties 파일에서 별칭 설정을 하여 패키지 명을 명시해주어야 한다.

@Alias 별칭으로 명시해주면 자동으로 해당 패키지를 스캔하여 alias를 모두 등록해준다. ㅇㅂㅇ👍

 

2) Mapper.xml, DTO 패키지 경로 추가

만약 properties 파일을 수정하지 않고 작성하고 싶다면 parameterType에 패키지 명도 함께 작성해주면 된다.

<insert id="create" parameterType="com.example.domain.Member">
	...
</insert>

(귀찬....😂)

 

3) mybatis-config.xml, typeAlias 설정

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="defaultStatementTimeout" value="30"/>
    </settings>

    <typeAliases>
        <typeAlias type="com.ktnet.gethub.oss.core.domain.Role" alias="role"/>
        <typeAlias type="com.ktnet.gethub.oss.core.domain.Admin" alias="admin"/>
        <typeAlias type="com.ktnet.gethub.oss.core.domain.Customer" alias="customer"/>
    </typeAliases>
</configuration>

(요것도 귀찬....🤣)

 

출처

 

Last Updated. 2022. 04. 06.

 

반응형

블로그의 정보

배부른코딩로그

배부른코딩로그

활동하기