我用的是spring Boot 3。我试图创建一个本地查询与实体管理器,我想饲料的dto
@SqlResultSetMapping(
name = "BookResultMapping",
classes = @ConstructorResult(
targetClass = BookSearchResult.class,
columns = {
@ColumnResult(name = "code"),
@ColumnResult(name = "title")}))
public class BookSearchService {
@PersistenceContext
private EntityManager entityManager;
public void bookSearch(Search search){
StringBuilder sbSqlQuery = new StringBuilder();
...
Query query = entityManager.createNativeQuery(sbSqlQuery.toString(), "BookResultMapping");
...
}
}
@Data
@RequiredArgsConstructor
public class BookSearchResult {
private String code;
private String title;
}
当我运行这个代码时,我得到
无法解析指定的结果集Map名称:BookResultMapping
编辑,我试图将与SqlResultSetMapping相关的代码直接添加到dto,但结果相同
1条答案
按热度按时间zy1mlcev1#
看看这个答案:https://stackoverflow.com/a/36109273
简而言之,
@SqlResultSetMapping
注解应该放在一个@Entity
类中,以便被检测到。我认为这是缺乏记录和在线的例子总是显示孤立的注解没有太多的上下文。如果你想避免使用任何实体,你可以这样做:
在本例中,MessageDTO就是您的DTO。它必须有一个构造函数将所有参数。