Вот мой репозиторий:
public interface MachineRepository extends JpaRepository<Machine, Integer> {
@Query(value="select m.name FROM Machine m", nativeQuery = true)
Set<SomeName> getAllMachineTypes();
}
Интерфейс:
public interface SomeName {
String getName();
}
Модель:
@Data
@Entity
@Table(name="Machine")
public class Machine {
@Id
@Column(name = "id")
@GeneratedValue
private Integer id;
@Column(name = "name")
private String name;
}
Сервис:
@Service
public class MachineService {
@Autowired
MachineRepository machineRepository;
public Set<SomeName> getAllMachines(){
return machineRepository.getAllMachines();
}
Контроллер:
@Autowired
MachineService machineService;
@RequestMapping("/")
public String findMachines(){
Set<SomeName> machines = machineService.getAllMachines();
for (SomeName mch: machines
) {
System.out.println(mch.getName());
}
//...
}
Когда я запускаю как есть, он выводит имя на консоль. Но когда я изменяю nativeQuery на false (или удаляю его, потому что по умолчанию это false):
public interface MachineRepository extends JpaRepository<Machine, Integer> {
@Query(value="select m.name FROM Machine m", nativeQuery = false)
Set<SomeName> getAllMachineTypes();
}
Тогда я не получаю никакого вывода. Поскольку я не хочу использовать nativeQuery, я хотел бы спросить, как заставить его работать без него.