mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
fix: ClassCastException error; close #I7MRWP
This commit is contained in:
parent
18b67db07e
commit
0e750622f6
@ -218,8 +218,10 @@ public class TableInfoFactory {
|
|||||||
if (Collection.class.isAssignableFrom(fieldType)) {
|
if (Collection.class.isAssignableFrom(fieldType)) {
|
||||||
Type genericType = TypeParameterResolver.resolveFieldType(field, entityClass);
|
Type genericType = TypeParameterResolver.resolveFieldType(field, entityClass);
|
||||||
if (genericType instanceof ParameterizedType) {
|
if (genericType instanceof ParameterizedType) {
|
||||||
Class<?> actualTypeArgument = (Class<?>) ((ParameterizedType) genericType).getActualTypeArguments()[0];
|
Type actualTypeArgument = ((ParameterizedType) genericType).getActualTypeArguments()[0];
|
||||||
tableInfo.addCollectionType(field, actualTypeArgument);
|
if (actualTypeArgument instanceof Class){
|
||||||
|
tableInfo.addCollectionType(field, (Class<?>) actualTypeArgument);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 实体类嵌套
|
// 实体类嵌套
|
||||||
|
|||||||
@ -64,11 +64,11 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<!-- <dependency>-->
|
||||||
<groupId>com.h2database</groupId>
|
<!-- <groupId>com.h2database</groupId>-->
|
||||||
<artifactId>h2</artifactId>
|
<!-- <artifactId>h2</artifactId>-->
|
||||||
<version>2.1.214</version>
|
<!-- <version>2.1.214</version>-->
|
||||||
</dependency>
|
<!-- </dependency>-->
|
||||||
|
|
||||||
<!-- <dependency>-->
|
<!-- <dependency>-->
|
||||||
<!-- <groupId>org.yaml</groupId>-->
|
<!-- <groupId>org.yaml</groupId>-->
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import com.mybatisflex.core.row.Row;
|
|||||||
import com.mybatisflex.test.mapper.AccountMapper;
|
import com.mybatisflex.test.mapper.AccountMapper;
|
||||||
import com.mybatisflex.test.mapper.MyAccountMapper;
|
import com.mybatisflex.test.mapper.MyAccountMapper;
|
||||||
import com.mybatisflex.test.model.Account;
|
import com.mybatisflex.test.model.Account;
|
||||||
|
import com.mybatisflex.test.model.AccountDto;
|
||||||
import com.mybatisflex.test.service.AccountService;
|
import com.mybatisflex.test.service.AccountService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -52,7 +53,7 @@ public class AccountController {
|
|||||||
|
|
||||||
|
|
||||||
@GetMapping("/account/byName/{name}")
|
@GetMapping("/account/byName/{name}")
|
||||||
Account selectName(@PathVariable("name") String name) {
|
AccountDto selectName(@PathVariable("name") String name) {
|
||||||
return myAccountMapper.selectByName(name);
|
return myAccountMapper.selectByName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,13 +17,14 @@
|
|||||||
package com.mybatisflex.test.mapper;
|
package com.mybatisflex.test.mapper;
|
||||||
|
|
||||||
import com.mybatisflex.test.model.Account;
|
import com.mybatisflex.test.model.Account;
|
||||||
|
import com.mybatisflex.test.model.AccountDto;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
public interface MyAccountMapper extends AccountMapper {
|
public interface MyAccountMapper extends AccountMapper {
|
||||||
|
|
||||||
|
|
||||||
Account selectByName(@Param("name") String name);
|
AccountDto selectByName(@Param("name") String name);
|
||||||
|
|
||||||
@Select("select * from tb_account where id = #{id} and id =#{id}")
|
@Select("select * from tb_account where id = #{id} and id =#{id}")
|
||||||
Account selectById(@Param("id") Object id);
|
Account selectById(@Param("id") Object id);
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package com.mybatisflex.test.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class AccountDto {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private List<Map<String,String>> other;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Map<String, String>> getOther() {
|
||||||
|
return other;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOther(List<Map<String, String>> other) {
|
||||||
|
this.other = other;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,10 +4,10 @@ spring:
|
|||||||
# console:
|
# console:
|
||||||
# enabled: true
|
# enabled: true
|
||||||
datasource:
|
datasource:
|
||||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
url: jdbc:mysql://localhost:3306/flex_test
|
url: jdbc:mysql://localhost:3306/flex_test
|
||||||
username: root
|
username: root
|
||||||
password: 12345678
|
password: 123456
|
||||||
# driver-class-name:
|
# driver-class-name:
|
||||||
# datasource:
|
# datasource:
|
||||||
# driver-class-name: org.h2.Driver
|
# driver-class-name: org.h2.Driver
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
<!-- </resultMap>-->
|
<!-- </resultMap>-->
|
||||||
|
|
||||||
<!-- selectByName -->
|
<!-- selectByName -->
|
||||||
<select id="selectByName" resultType="com.mybatisflex.test.model.Account">
|
<select id="selectByName" resultType="com.mybatisflex.test.model.AccountDto">
|
||||||
select * from `tb_account` where `user_name` = #{name}
|
select * from `tb_account` where `user_name` = #{name}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
4
pom.xml
4
pom.xml
@ -177,14 +177,14 @@
|
|||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
<version>${mysql.version}</version>
|
<version>${mysql.version}</version>
|
||||||
<scope>test</scope>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
<version>${HikariCP.version}</version>
|
<version>${HikariCP.version}</version>
|
||||||
<scope>test</scope>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user