Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除使用JpaRepository检索的结果中的空格(修剪)_Java_Jpa_Spring Boot - Fatal编程技术网

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
之类的函数

  • RTRIM–删除字符串右侧的空格(或前导空格)

  • LTRIM–删除字符串左侧的空格(或尾随空格)

  • 下面是一个查询示例:

    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之前,我们无法访问单个数据。我认为,如果不迭代列表,就无法实现这一点。