Есть ли способ выбрать только некоторые столбцы из таблицы, используя jpa?
Мои таблицы огромные, и мне не разрешено отображать все столбцы в моих сущностях.Я попытался создать сущность (как примечание, у меня нет таблиц PK в моих таблицах):
@Entity
@Table(name = "SuperCat")
@Getter
@Setter
public class Cat{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column(name="nameCat")
private String name;
}
, а затем в моем хранилище до
public interface CatRepository extends
CrudRepository<Cat, Long> {
@Query(
"SELECT name FROM Cat")
Page<Cat> getAlCats(Pageable pageable);
Это толькопростой пример, но идея та же.Я много искал и нашел прогнозы, но там нужно отобразить всю таблицу, затем я нашел нативные запросы, но они все еще не применяются.Я знаю, что могу вернуть объект, и другое решение - использовать запрос с NEW и создать свой собственный объект (без @entity, как pojo).Но есть ли способ, которым я могу сделать это, используя jpa, чтобы иметь возможность использовать репозиторий и сервисы, если я создаю свое собственное pojo, тогда я создам класс @transactional, помещая запросы (с NEW) туда, и это все.Мне не нравится этот подход, и я не думаю, что jpa не позволяет вам выбирать только некоторые столбцы, но я не нашел правильный путь.Может быть, вы спросите, каков результат, если я делаю так: я получаю эту ошибку: «Невозможно создать TypedQuery для запроса с более чем одним возвратом, используя запрошенный тип результата [java.lang.Long]» (Для новых запросов яговорим о: http://www.java2s.com/Tutorials/Java/JPA/4800__JPA_Query_new_Object.htm возможно мне было непонятно)