いくつかの結果と結果の総数のクライアントリストに戻る必要があります。エンティティが異なるいくつかの場所でそれを行う必要があるため、次の2つの属性を持つジェネリッククラスが必要です。
@XmlRootElement
public class QueryResult<T> implements Serializable {
private int count;
private List<T> result;
public QueryResult() {
}
public void setCount(int count) {
this.count = count;
}
public void setResult(List<T> result) {
this.result = result;
}
public int getCount() {
return count;
}
public List<T> getResult() {
return result;
}
}
そしてサービス:
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public QueryResult<TestEntity> findAll(
QueryResult<TestEntity> findAll = facade.findAllWithCount();
return findAll;
}
エンティティは重要ではありません:
@XmlRootElement
public class TestEntity implements Serializable {
...
}
しかし、これは次の原因になります。javax.xml.bind.JAXBException: class test.TestEntity nor any of its super class is known to this context.
コレクションだけを返すのは簡単ですが、自分のジェネリック型を返す方法がわかりません。使ってみましGenericType
たが、うまくいきませんでした。コレクションのメンターだと思います。