如何使用JPA中的一对多映射来提取列表并映射到DTO?

时间:2019-04-30 08:43:48

标签: java mysql hibernate spring-boot jpa

我在JPA中获取列表时遇到问题。我知道这个问题与一对多映射有关。我的要求是在位置dto中获取位置列表以及位置的图像数组。但是我的查询给出了错误:

  

2019-04-30 07:56:20.504警告10796 --- [nio-8888-exec-4]   o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:1064,SQLState:   42000 2019-04-30 07:56:20.504错误10796 --- [nio-8888-exec-4]   o.h.engine.jdbc.spi.SqlExceptionHelper:您的错误   SQL语法;检查与您的MySQL服务器相对应的手册   在'as col_11_0_ from附近使用正确语法的版本   在第1行的place0_.i'上的place0_内部联接place_image placeimage1_   org.springframework.dao.InvalidDataAccessResourceUsageException:可以   不提取ResultSet; SQL [n / a];嵌套异常为   org.hibernate.exception.SQLGrammarException:无法提取   结果集

我在此处发布代码段。请让我知道如何获取具有一对多映射的结果集。

DAO:

int index = this.YourIndexProperty;

实体:

CommandParameter="{Binding}"

}

DTO类:

@Override
public List<PlaceDto> findPlacesByCondition(String condition) {
        return entityManager
                .createQuery("select new com.app.hop.models.dto.PlaceDto(p.id, p.name, p.subLocality, p.locality, p.postalCode,"+ 
    "p.administrativeArea, p.country, p.latitude, p.longitude," + 
    "p.rating, p.reviewCount,p.placeImages) from Place as p "+condition, PlaceDto.class).getResultList();
}

0 个答案:

没有答案