Получить один столбец, используя данные JPA Spring без запроса - PullRequest
0 голосов
/ 12 апреля 2019

Я просто пытаюсь избежать написания запроса и выборки данных на основе соглашения имени метода.Ниже моя сущность

@Entity
class Product{
     @Id
     private Integer productId;
     private String productName;
     private String productStrategy;
}

У меня есть хранилище ниже:

interface ProductRepository extends JPARepository<Product,Integer>{
        public Product findByProductStrategy(String productStrategy);
}

Выше метод и хранилище работают нормально для меня.Но я использую только productName из приведенного выше результата.Так есть ли способ, с помощью которого я могу просто извлечь productName вместо извлечения записи отверстия.

Примечание: я знаю, мы можем добиться этого, используя @Query, написав запрос HQL или собственный запрос,Но я хочу сделать это без написания запроса, просто с соглашением об имени метода.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2019

Рассмотрите возможность использования Проекции из данных пружины

Создайте проекционный интерфейс для вашей сущности с нужным вам полем. В вашем случае это должно выглядеть примерно так:

public interface ProductName {
  String getProductName();
}

, а затем измените свой репозиторий, чтобы иметь тип возврата самого интерфейса проекции. Весна позаботится обо всем остальном.

public interface ProductRepository extends JPARepository<Product,Integer>{
        public ProductName findByProductStrategy(String productStrategy);
}
0 голосов
/ 12 апреля 2019

вы можете сделать что-то подобное, например, когда вам нужно просто productName, вы можете использовать класс Lite.

@Entity
@Table(name = "product")
Class ProductLite{
         @Column(name = "productName", nullable=false)
         private String productName;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...