Как прочитать конкретные переменные объекта из хранилища с помощью запроса? - PullRequest
0 голосов
/ 12 июня 2019

Предположим, что у нас есть постоянный объект Entity, который имеет 10 переменных, если я сделаю, например, repository.read(id) или repository.findById(id), я верну объект Entity со всеми переменными, установленными из хранилища.

Есть ли способ использовать JPAQuery или EntityManager или любой другой возможный способ, чтобы я мог сделать вызов в хранилище и получить обратно объект Entity, НО также без извлечения определенной переменной?

Я пробовал следующее, но, похоже, он ничего не делает, но все же вводит Сет в ответ:

JPAQuery<Fruit> query = new JPAQuery<>(entityManager);
QFruit fruit = QFruit.Fruit;
Set<Apple> apple = new HashSet<Apple>();
query.select(fruit).from(fruit).where(fruit.id.eq(fruitId))
.createQuery().getParameters().remove(apple);
return query.fetchOne();

1 Ответ

1 голос
/ 13 июня 2019

Вы можете использовать любой пользовательский POJO, чтобы получить результаты и указать, что выбрано.

https://docs.oracle.com/html/E13946_05/ejb3_langref.html#ejb3_langref_constructor

public interface AppleRepository extends CrudRepository<Apple, Long> {
    @Query("SELECT new com.mypackage.Apple(a.field1, a.field2) FROM " +
           "    Apple a ")
    List<Apple> findCustomApples();
}

Другой способ - сделать любойопределенный столбец, чтобы быть Ленивым Загруженным.Вы можете сделать это с аннотацией.

...