Так что я пишу нативные запросы, потому что они очень сложны, чтобы получить все необходимые данные и так далее.В настоящее время я сталкиваюсь с проблемой, которая обычно выполняется 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){
...
}
}
My @SqlResultSetMapping
выглядит в основном как
@SqlResultSetMapping(name = "FooDTO",
classes = @ConstructorResult(targetClass = FooDTO.class, columns = {
@ColumnResult(name = "id", type = Long.class),
//TODO @ColumnResult(name = "feeDtos", type = FeeDtos.class)
})
)
Именованный собственный запрос выглядит примерно так:
@NamedNativeQueries({
@NamedNativeQuery(
name = "FooData",
query = "SELECT MAINSELECT.ID AS id, " +
"???" +
" FROM Foo MAINSELECT WHERE ... " +
...,
resultSetMapping = "FooDTO")
})
Как мне написать собственный запрос?Возможно ли это даже без подзапроса или мне нужно делать / выполнять подзапрос для каждого datarow результата?Я не смог найти что-то на любимом Google.