У вас есть два варианта:
Написать собственный запрос:
@Query(value = "SELECT DISTINCT w.WA_ID FROM WHATSAPP_CHAT w", nativeQuery = true)
List<String> findDistinctWhatsappIds();
Написать JPQL-запрос (запрос с использованием объектов):
@Query("SELECT DISTINCT w.whatsappid FROM WhatsappChat AS w")
List<String> findDistinctWhatsappIds();
В любом случае, я бы изменил имя метода на множественное (это список) и на верхний регистр в Id (извлечение столбца), чтобы точно знать, к чему оно идет.
ПРИМЕЧАНИЕ. Имя метода не влияет на сам запрос, так как оно содержит аннотацию @Query, указывающую, что выполнять.
Вы можете проверить это (немного по-другому, если не использовать Spring-boot):
@DataJpaTest
@RunWith(SpringRunner.class)
public class WhatsappChatRepositoryTest {
@Autowired
EntityManager entityManager;
@Autowired
WhatsappChatRepository whatsappChatRepository;
@Before
public void setup() {
entityManager.persist(new WhatsappChat("whats1", "whats01", 1));
entityManager.persist(new WhatsappChat("whats2", "whats02", 2));
entityManager.persist(new WhatsappChat("whats3", "whats01", 3));
entityManager.persist(new WhatsappChat("whats4", "whats04", 4));
entityManager.flush();
}
@Test
public void shouldTestSameResult() {
assertEquals(whatsappChatRepository.findDistinctWhatsappIds(), whatsappChatRepository.findDistinctWhatsappIdsNative());
assertEquals(Arrays.asList("whats01", "whats02", "whats04"), whatsappChatRepository.findDistinctWhatsappIds());
}
}