Java 删除使用JpaRepository检索的结果中的空格(修剪)
存储库类是:Java 删除使用JpaRepository检索的结果中的空格(修剪),java,jpa,spring-boot,Java,Jpa,Spring Boot,存储库类是: public interface CategoryRepository extends JpaRepository<Category,Integer> { } @Service public class CategoriesService { @Autowired CategoryRepository repo; public Iterable<Category> findAll(){ return repo.f
public interface CategoryRepository extends JpaRepository<Category,Integer> {
}
@Service
public class CategoriesService {
@Autowired
CategoryRepository repo;
public Iterable<Category> findAll(){
return repo.findAll();
}
}
public interface CategoryRepository扩展了JpaRepository{
}
服务类别为:
public interface CategoryRepository extends JpaRepository<Category,Integer> {
}
@Service
public class CategoriesService {
@Autowired
CategoryRepository repo;
public Iterable<Category> findAll(){
return repo.findAll();
}
}
@服务
公共类分类服务{
@自动连线
分类报告式回购;
公共可引用findAll(){
返回回购findAll();
}
}
然后我使用service.findAll()
检索结果ArrayList。它给了我正确的结果,但因为数据库中的值包含空格。那么,如何删除ArrayList中结果中的空格(无需迭代结果ArrayList并进行修改)
已编辑
问题是,在服务类中获得arrayList之前,我们无法访问各个数据元素
那么,如何删除ArrayList中结果中的blank空格(无需迭代结果ArrayList并进行修改)
一种方法是修改查询并获得正确的结果集,而不使用前导或尾随空格。您可以使用诸如LTRIM
和RTRIM
之类的函数
SELECT LTRIM(RTRIM(User_Name)) AS User_Name FROM Users
在
findAll()
那么,不要依赖于此编写您自己的方法来格式化ArrayList。JPA模块支持将查询手动定义为字符串或从方法名称派生查询。在您当前实现的findAll()
中,它会自动派生查询。虽然从方法名派生的查询非常方便,但是可能会遇到这样的情况:要么方法名解析器不支持想要使用的关键字,要么方法名变得不必要的丑陋。因此,您可以通过命名约定使用JPA命名查询,也可以使用@query注释查询方法。后者修剪前导和尾随空格的示例如下所示:
public CategoryRepository extends JpaRepository<Category,Integer> {
@Query("SELECT LTRIM(RTRIM(Category_Field)) AS Category_Field FROM Categories")
User findAll();
}
public CategoryRepository扩展了JpaRepository{
@查询(“从类别中选择LTRIM(RTRIM(类别字段))作为类别字段”)
用户findAll();
}
如果您还有问题,您可以在此处阅读有关自定义JPA查询的更多信息:您的意思是修剪结果中的前导空格和尾随空格,还是删除包含空格的结果?您是指我的comment@vineethsivan,对不起,这是第一张。问题是,在我们在服务类中获得arrayList之前,我们无法访问单个数据。我认为,如果不迭代列表,就无法实现这一点。