当前位置: 首页 > 知识库问答 >
问题:

使用投影仪从spring数据中获得的不明确成分

辛锦
2023-03-14

有人能帮我吗?我对spring数据很模糊,所以我有地址实体

@Entity
public class Address {
    @Id
    private Long id;
    private String state;
    private String city;
    private String street;
    private String zipCode;

    public Long getId() {
        return id;
    }

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

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }
}

投影仪接口

public interface AddressView {
    String getZipCode();
}

以及存储

@Repository
public interface AddressRepository extends org.springframework.data.repository.Repository<Address, Long> {
    List<AddressView> getAddressByState(String state);
    List<AddressView> findAll();

测验

List<AddressView> addressViewList = addressRepository.getAddressByState("test");
        List<AddressView> addressViewList2 = addressRepository.findAll();

第一个请求getaddressByState工作正常,并返回地址,但第二个findall我有那个问题没有发现转换器能够从类型转换.........

这正常吗?谢谢你!

共有1个答案

柴彬
2023-03-14

您将地址定义为地址存储库中的预期响应

通过调用getaddressByState()和findAll(),您将获得地址,而不是地址视图,考虑使用DTO

 类似资料:
  • 我不能同时使用Spring Data,JPA投影和规范。我有以下设置: 实体: 投影界面: 国家规格: 存储库: 前两个方法findByName和findAllProjectedBy工作良好。而第三个方法findAllProjectedBy(Specification Specification)抛出以下异常- 如何才能做到这一点呢?有什么想法吗?

  • 问题内容: 我一直想知道应该使用哪种类型的投影,所以我做了一点测试,涵盖了5种类型的投影(基于docs:https : //docs.spring.io/spring- data/jpa/docs/current / reference / html /#projections ): 1.实体投影 这只是Spring Data存储库提供的标准。这里没什么好看的。 服务: 实体: 2.构造函数投影

  • 我已经为此挣扎了好几天了。我们刚刚开始与mongoDB合作,因此我对它的了解非常有限。 总之,我想做的是:我们有一个叫做Loan的课程,就像这样: 由于查询此集合时必须执行各种操作,因此我们在LoanRepository中创建了一个聚合(该聚合适用于我们在Mongo Compass中创建的,然后将其导出到我们的代码中): 这个想法是,在所有上述操作之后,我们只需要从整个Loans表中返回一些字段(

  • 假设我有那些DTO: 在我的存储库中,我使用这些DTO作为投影进行查询: 我可以使用这个repo很好地访问ForumDTO中的id、name,但对于lasthread,它只返回null。我试过作为最后一个线程。Id、lastThread\u Id、lastThreadId均无效。

  • 我有个小问题。假设我有这个实体: 因为在某些时候我不想加载名字和姓氏,所以我使用了投影(https://docs.spring.io/spring-data/jpa/docs/1.10.2.release/reference/html/#Projections):我定义了这个接口: 现在来看看这个存储库: 所以基本上Spring加载所有字段。如果在PersonSlim接口中排除方法,Spring将