[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>
(요것도 귀찬....🤣)
출처
- MyBatis – 마이바티스 3, 저자, 2022-03-02
Last Updated. 2022. 04. 06.
반응형
'Spring > Mybatis' 카테고리의 다른 글
[MyBatis] MyBatis-Spring-Boot-Starter 버전 호환 (0) | 2023.04.07 |
---|---|
[Mybatis] LOB Type 데이터 처리하기 (0) | 2020.04.02 |
[Mybatis] Log4j 로그찍기 (0) | 2020.03.31 |
[Mybatis] Java Function 불러오기 (0) | 2020.03.27 |
[Mybatis] OGNL(Object Graph Navigation Language) Issue (0) | 2020.03.27 |
블로그의 정보
배부른코딩로그
배부른코딩로그