有没有办法通过rest api projection返回集合的大小?
考虑这个例子:
数据:
try
{
...
}
catch(Exception e)
{
Logger.Log(e.Message);
}
存储库:
@Entity
@Table
public class MyData {
// id
// ...
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "mydata")
private final Set<User> users = new HashSet<>();
// getters/setters ...
}
投影:
@RepositoryRestResource
public interface MyDataRepository extends PagingAndSortingRepository<MyData, Long> {
}
我想通过REST api获取MyData-Object中的用户数。
例如:@Projection(name = "short", types = {MyData.class})
public interface MyDataProjection {
// neither of those work
// @Value("#{target.getUsers().size()}")
@Value("#{target.users.size()}")
Integer nrUsers();
}
应该返回:
my-domain/my-service/mydatas/123/?projection=short
无论如何都可能吗?
答案 0 :(得分:0)
命名约定是以&#34; get&#34;开头。因为投影的属性是方法,而不是字段。所以这有效:
@Value("#{target.users.size()}")
Integer getNrUsers();
(而不是之前的&#34; nrUsers()&#34;)