弹簧数据投影尺寸()

时间:2018-04-17 06:24:49

标签: java spring rest spring-hateoas

有没有办法通过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

无论如何都可能吗?

1 个答案:

答案 0 :(得分:0)

命名约定是以&#34; get&#34;开头。因为投影的属性是方法,而不是字段。所以这有效:

@Value("#{target.users.size()}")
Integer getNrUsers();

(而不是之前的&#34; nrUsers()&#34;)