gpt4 book ai didi

java - 使用 NamedNativeQuery 和 SqlResultSetMapping 映射任何集合

转载 作者:行者123 更新时间:2023-12-02 09:47:23 29 4
gpt4 key购买 nike

所以我正在编写 native 查询,因为它们对于获取所有需要的数据等非常复杂。我目前面临一个通常由 Hibernate/JPA 等完成的问题。

想象一下以下情况:

@Entity
FooEntity{
@Id
public Long id;
@ManyToMany
public List<FeeEntity> feeEntities;
}

@Entity
FeeEntity{
@Id
public Long id;
@Column
public String name;
}

还有一些 DTO

FooDTO{
private final Long id;
private final List<FeeDTO> someStrings;

public FooDTO(Long id, List<FeeDTO> feeDtos){
...
}
}

我的@SqlResultSetMapping看起来基本上像

@SqlResultSetMapping(name = "FooDTO", 
classes = @ConstructorResult(targetClass = FooDTO.class, columns = {
@ColumnResult(name = "id", type = Long.class),
//TODO @ColumnResult(name = "feeDtos", type = FeeDtos.class)
})
)

命名的 native 查询类似于:

@NamedNativeQueries({
@NamedNativeQuery(
name = "FooData",
query = "SELECT MAINSELECT.ID AS id, " +
"???" +
" FROM Foo MAINSELECT WHERE ... " +
...,
resultSetMapping = "FooDTO")
})

我该如何编写 native 查询?如果没有子查询,这是否可能,或者我是否必须为结果的每个数据行执行/执行子查询?我在心爱的谷歌上找不到任何东西。

最佳答案

这是不可能的。

SQL查询的结果始终是一张表。因此没有嵌套表,因此您无法将其映射到集合。

关于java - 使用 NamedNativeQuery 和 SqlResultSetMapping 映射任何集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56545124/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com