Я написал собственный запрос для метода репозитория, который группирует по определенным столбцам.
Я не могу группировать по id
, поскольку это нарушит группировку.
@Query(nativeQuery = true, value = "SELECT description, model_year, take_rate, number " +
"FROM foo f " +
"INNER JOIN bar b " +
"ON b.cycle_plan_code = b.cycle_plan_code " +
"WHERE b.programme = :programme " +
"AND b.build_event = :buildEvent " +
"AND f.vehicle_line = :vehicleLine " +
"GROUP BY description, take_rate, model_year, number")
List<FooEntity> findAllFooByBar(@Param("vehicleLine") String vehicleLine, @Param("programme") String programme,
@Param("buildEvent") String buildEvent);
У моего объекта есть столбец @Id
и некоторые другие
@Table(name = "foos")
public class FooEntity {
@Id
private Long id;
@Column(name = "cycle_plan_code")
private String cyclePlanCode;
@Column(name = "model_year")
private String year;
@Column(name = "vehicle_line", nullable = true)
private String vehicleLine;
@Column(name = "number")
private Integer number;
@Column(name = "description")
private String description;
@Column(name = "take_rate")
private double takeRate;
}
При доступе к методу репозитория он выдает hibernate
o.h.engine.jdbc.spi.SqlExceptionHelper : Column 'id' not found.
Я попытался взломать его, добавив это в предложение select
SELECT 0 as id
Это прогрессирует, однако затем жалуется, что запрос не возвращает другие столбцы для объекта vehicle_line
, model_year
Мне пришлось добавить их все в запросзаставить это работать.
Я попробовал флаг nullable = true
в аннотации, но это не позволило мне опустить столбцы в предложении select.
Как я могу вернуть сущности только с некоторыми возвращаемыми столбцамичто меня интересует?