1

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構造に追加されるように、名前付きクエリを作成するにはどうすればよいですか? ありがとうございました。

4

1 に答える 1