db2 からデータを取得する単純な JEE6 レスト クラスがあります。ApplicationConfig クラスで Jackson を使用して、エンティティ オブジェクトを json に変換しています。フィールド名をキー、値を右側の値として変換します。たとえば、次のようになります。
Class Entity {
String name;
String address;
}
に変換します
{name:"hello", address:"world"}
サービスは次のとおりです。
public List<T> findAll() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).getResultList();
}
ここで、json 形式の名前のみを返したいと思います。そこで、エンティティ クラスで次のように名前付きクエリを作成しました。
@NamedQuery(name = "justGetName", query = "SELECT a.name FROM Applications a")
そして、サービスは次のように変更されました
public List<T> findAll() {
return getEntityManager().createNamedQuery("justGetName").getResultList();
}
これにより、次の配列が返されます。
[{"first","second","third"}]
しかし、私は戻りたい:
[{name:"first",name:"second",name:"third"}]
クラスフィールド名がjson構造に追加されるように、名前付きクエリを作成するにはどうすればよいですか? ありがとうございました。