@Query-返回原始类型或String对象?

问题描述

我遇到一个小问题,尝试检索一个int值或String以查找数据库中的Top记录或最后一条记录,具体取决于我想要的内容。 在Spring数据文档中,我发现了以下内容

Vaccine findTopByOrderByVaccineCodeDesc();

哪个状态很好,但是正在返回疫苗,我不想要整个疫苗对象,例如,我只想要“疫苗代码”。我尝试过这样的事情:

String findTop1ByOrderByVaccineCodeDesc();

但不幸的是,这是错误的!没用但是呢:

@Query("SELECT TOP v.vaccineCode FROM Vaccine v ORDER BY vaccineCode Desc")
String getLastRecordByVaccineCode();

我知道这在语法上是错误的,因为我以错误的方式使用TOP,但是我不知道该怎么做。 有什么建议吗?我真的很感激如何在文档中找到答案或如何阅读文档的提示,我在文档中看起来并不好。

解决方法

您可以使用EntityManager

public String getVaccineCode {
@AutoWired
EntityManager entityManager;
String vaccineCode = (String) entityManager.createQuery("SELECT v.vaccineCode FROM Vaccine v ORDER BY vaccineCode Desc",String.class).getFirstResult());
return vaccineCode;
}