请教个Mongodb+Springmvc,查询报错

QQ83667664 2019-07-22 03:08:48
实体类:Student、WeightAddition、Weight,它们关系如下

public class Student {
@Id
private String code;
private String name;
private WeightAddition weightAddition;
public Student() {
//this.user = new User(1, "3434", SexEnum.MAN, new Weight(0, WeightUnit.KG));
this.weightAddition = new WeightAddition(new WeightAddition.Weight(0, WeightUnit.KG));
}

public class WeightAddition
{
/// 最大加成重量
private double maxAdditionWeight ;
/// 最大加成重量单位
private WeightUnit maxAdditionWeightUnit ;
public WeightAddition(Weight maxAdditionWeight)
{
this.maxAdditionWeight = maxAdditionWeight.value;
this.maxAdditionWeightUnit = maxAdditionWeight.weightUnit;
}
public static class Weight {
private double value;

private WeightUnit weightUnit;
public Weight(double value, WeightUnit weightUnit) {
this.value = value;
this.weightUnit = weightUnit;
}
}
当查询数据后不知道(List<Student> studentList=mongo.findAll();),会报错呢
报错信息如:
14:43:54,166 INFO ClassPathXmlApplicationContext:583 - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@50675690: startup date [Mon Jul 22 14:43:54 CST 2019]; root of context hierarchy
14:43:54,267 INFO XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [spring-context.xml]
Exception in thread "main" org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate com.prc.domain.WeightAddition using constructor public com.prc.domain.WeightAddition(com.prc.domain.WeightAdditionPackagesType,double,com.prc.domain.WeightAddition$Weight) with arguments AllPackage,0.0,0.0
at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:78)
at org.springframework.data.convert.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:83)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:251)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1186)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access$200(MappingMongoConverter.java:78)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1134)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:870)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:283)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:271)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:309)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:271)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:191)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:187)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:78)
at org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:2230)
at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1906)
at org.springframework.data.mongodb.core.MongoTemplate.findAll(MongoTemplate.java:1312)
at org.springframework.data.mongodb.core.MongoTemplate.findAll(MongoTemplate.java:1308)
at com.prc.daoImpl.StudentImpl.findAll(StudentImpl.java:82)
at com.prc.test.TestMongo.main(TestMongo.java:53)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.prc.domain.WeightAddition]: Illegal arguments for constructor; nested exception is java.lang.IllegalArgumentException: argument type mismatch
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:151)
at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:76)
... 21 more
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ83667664 2019-07-24
  • 打赏
  • 举报
回复
引用 3 楼 Waiting Alone 的回复:
Mongo 查询的对象是用Document 接收,不是Student.
你好,我是用 @Autowired MongoTemplate mongoTemplate;怎么网上好多都是用List<User> userList = mongoTemplate.find();这样方法来现实的呢?
Waiting Alone 2019-07-24
  • 打赏
  • 举报
回复
Mongo 查询的对象是用Document 接收,不是Student.
QQ83667664 2019-07-23
  • 打赏
  • 举报
回复
没人回答么
QQ83667664 2019-07-22
  • 打赏
  • 举报
回复
Failed to instantiate com.prc.domain.WeightAddition using constructor public com.prc.domain.WeightAddition(com.prc.domain.WeightAdditionPackagesType,double,com.prc.domain.WeightAddition$Weight) with arguments AllPackage,0.0,0.0

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧