我有一个返回json结果的端点。看来数据库中的某些行是重复的。我想只检索第一个匹配的结果,而忽略其余的结果。这是我在DAO中的HQL
@SuppressWarnings("unchecked")
public List <Data> getDetails(String tin) {
return sessionFactory.getCurrentSession().createQuery("from Data where cal_no = :cal_no")
.setParameter("cal_no", tin).list();
}
这是hql的结果格式
[{"id":15274,"cal_NO":"37"}{"id":15275,"cal_NO":"37"}]
您可以看到cal_NO重复两次,因为dbd中存在37次cal_no两次。我的挑战只是选择第一次出现而忽略其余部分。
答案 0 :(得分:0)
您可以创建一个public static class StringExtensions
{
public static string MaskField(this string str, string field, string mask = "***")
{
var separators = ",;";
var sb = new StringBuilder();
foreach (var keyValue in Regex.Split(str, $"(?<=[{separators}])"))
{
var temp = keyValue;
var index = keyValue.IndexOf("=");
if (index > 0)
{
var key = keyValue.Substring(0, index);
if (string.Compare(key.Trim(), field.Trim(), true) == 0)
{
var end = separators.Contains(keyValue.Last()) ? keyValue.Last().ToString() : "";
temp = key + "=" + mask + end;
}
}
sb.Append(temp);
}
return sb.ToString();
}
}
对象并使用Criteria
来获取一个项目或
试试这段代码:
setMaxResults(1)