我想按 name 属性按升序排序我的实体并忽略大小写。
我创建了一个扩展Spring Data Repository接口的EntityRepository。然后我宣布了以下查找方法:
List<Entity> findByNameOrderByNameIgnoreCaseAsc(String name);
但是我收到了这个错误&#34;没有为类型&#34;找到属性ignoreCase。
我无法在Spring Data JPA documentation中找到对此案例的任何引用。
我使用的是spring-data-jpa版本1.11.0。
答案 0 :(得分:2)
如果您只想返回所有按名称排序且忽略大小写的实体,则可以使用以下方法:
//POST: api/Email
[HttpPost]
public async Task<IActionResult> Post()
{
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.Attachments.Add(new Attachment(@"C:\a.pdf"));
mailMessage.Attachments.Add(new Attachment(@"C:\b.pdf"));
mailMessage.To.Add("someone@somehwere.com");
using (var smtpClient = new SmtpClient("smtp.gmail.com", 578))
{
smtpClient.Credentials = new NetworkCredential("me@gmail.com", "12345");
smtpClient.EnableSsl = true;
await smtpClient.SendMailAsync(mailMessage);
}
}
File.Delete(@"C:\a.pdf");
File.Delete(@"C:\b.pdf");
return Ok();
}
答案 1 :(得分:0)
你的方法应该是这样的。
List<Entity> findByNameIgnoreCaseOrderByNameAsc(String name);
答案 2 :(得分:0)
Spring Data IgnoreCase
只能用于查找属性,而不能与Order by结合使用。
但是,您可以使用Sort.Order.ignoreCase()
和页面http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/Sort.Order.html#ignoreCase--
答案 3 :(得分:0)
请尝试在下面创建存储库方法(请注意添加的sort参数)
List<Entity> findByName(String name, Sort sort);
然后在此存储库中扩展PagingAndSortingRepository(Long是您的实体ID类型是什么):
extends PagingAndSortingRepository<Entity, Long>
然后按如下方式调用方法:
repository.findByName("nameToFind", Sort.by(Sort.Order.asc("name").ignoreCase()));