I'm facing an issue when I try to use a dto projection with a spring repository
class CarProjection {
String name;
List<Color> colors;
public CarProjection (String name, List<color> colors) {
...
}
}
class Car{
String name;
@OneToMany(mappedBy = "car")
List<Color> colors;
}
class Color{
@ManyToOne
Car car;
}
The method signature in the repository :
Slice<CarProjection> findAllBy(Pageable page);
I get an exception when I call it:
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [CarProjection]. Expected arguments are: java.lang.String, Color[........]
The expected second argument in the stacktrace is a Color, while I expected a List.
If I use an interface instead of a dto, it works as expected:
Anthony Foulfoin opened DATAJPA-1785 and commented
Hi,
I'm facing an issue when I try to use a dto projection with a spring repository
The method signature in the repository :
I get an exception when I call it:
The expected second argument in the stacktrace is a Color, while I expected a List.
If I use an interface instead of a dto, it works as expected:
But i'm facing some gson serialization problems with interface projections, maybe because of the spring proxy so I can't use this workaround
Issue Links:
1 votes, 3 watchers