【问题标题】:How to return Map<String, Object> in Java, JPA?如何在 Java、JPA 中返回 Map<String, Object>?
【发布时间】:2020-03-23 09:43:10
【问题描述】:

我有两个对象,StudentBookStudentBook 具有 @OneToMany 关系,而 Book 仅具有 idnamepublishYear。我想要的是从查询返回是这样的:

select s.name, 
       b.name, 
       b.publishYear 
from Student s 
     inner join Book b on s.id = b.studentId

如何使用地图返回s.nameb.nameb.publishYear,所以我不想返回列表而是返回地图。该怎么做?

【问题讨论】:

    标签: java sql hibernate jpa


    【解决方案1】:

    我假设你有一个 findAll() 方法,它返回一个包含 StudentBook 对象的列表,这些对象具有学生姓名、书名和图书出版年份等属性。

    现在将此方法转换为返回一个地图,其中键为书名,值为书名和出版年份,遵循以下代码:

            Map<String, Book> map = studentBookList.stream()
             .collect(Collectors.toMap(
                            StudentBook::getSname(), 
                            new Book(StudentBook::getBname(),
                                    StudentBook::getPublishYear()
                                    )
                            )
                    );
    

    【讨论】:

      猜你喜欢
      • 2013-06-16
      • 1970-01-01
      • 2016-11-26
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多