SPRING MONGO-DATA 1.4.0.RC1-> 1.4.0.RELEASE:"无法将字符串字段id设置为java.lang.Integer"

时间:2015-03-13 14:33:18

标签: spring mongodb spring-data spring-data-mongodb

我拼命想要将1.4.0.RC1 spring-data-mongo移除到至少1.4.0.RELEASE的春季数据....

我现在遇到的问题是:

我们在域对象中使用String作为@id字段

public class AbstractDocument implements Identifiable<String> {

@Id
@Indexed(unique = true, background = true)
private String id;

public AbstractDocument() {
    id = UUID.randomUUID().toString();
}
@Override
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

}

所以,这里没什么特别的,但是我觉得这很奇怪 &#34;无法将java.lang.String字段AbstractDocument.id设置为java.lang.Integer&#34; 错误,我尝试提供一个带有整数输入的setter,但没有任何变化,任何建议我在这里做错了以及我如何规避它?!

这很奇怪,因为在数据库中只是string-id字段:/而且太糟糕了这只发生在从RC1更新(不应该在第一时间使用,肯定)到相同版本的RELEASE;(< / p>

java.lang.IllegalArgumentException: Can not set java.lang.String field ...core.domain.AbstractDocument.id to java.lang.Integer
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
at java.lang.reflect.Field.get(Field.java:379)
at org.springframework.util.ReflectionUtils.getField(ReflectionUtils.java:136)
at org.springframework.data.mapping.model.BeanWrapper.getProperty(BeanWrapper.java:133)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.createDBRef(MappingMongoConverter.java:772)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.toDBRef(MappingMongoConverter.java:307)
at org.springframework.data.mongodb.core.convert.QueryMapper.createDbRefFor(QueryMapper.java:338)
at org.springframework.data.mongodb.core.convert.QueryMapper.convertAssociation(QueryMapper.java:329)
at org.springframework.data.mongodb.core.convert.QueryMapper.convertAssociation(QueryMapper.java:296)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:193)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObjectForField(QueryMapper.java:136)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:114)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1514)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1506)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:532)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$Execution.readCollection(AbstractMongoQuery.java:147)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$CollectionExecution.execute(AbstractMongoQuery.java:170)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery.execute(AbstractMongoQuery.java:91)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:337)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

0 个答案:

没有答案