0

我有一个抽象类和一个具体类。

abstract class FileModel{
    public abstract void setName();
    public abstract String getName();
}

class Container implements FileModel{
    private String name;
    @override
    public void setName(String name){this.name=name;}
    @override
    public String getName(){return this.name;}
}

我的find方法是这样的:

public interface ContainerRepository extends
    CrudRepository<Container, String>,
    MongoRepository<Container, String>,
    PagingAndSortingRepository<Container, String> {
    @Query(value = "{ 'pid' : ?0,'status':{'$ne':'deletion'}}", fields = "{'name' : 1,'referenceId' : 1,'_class':1}")
    List<FileModel> findByPid(String pid, Pageable pageable);
}

运行该方法后findByPid,出现以下错误:No property name found on FileModel。是否有必要name在抽象类中添加该属性?当回到 spring-data-mongodb 1.0.4 时,上面的所有代码都运行良好。现在我刚刚升级到 1.3.1,它坏了。有什么可以解决的吗?谢谢。

4

1 回答 1

0

在搜索 st 和一些谷歌搜索之后。我发现了一些类似的问题并进行了一些编码,结果我需要做的就是将所有内容private fields从具体类移到抽象类中,并使其protected@id id字段之外。然后一切都在进行中。

于 2013-10-09T02:56:02.017 回答