Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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/2/spring/14.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 来自Spring JPA查询的自定义结果_Java_Spring_Spring Boot_Spring Data Jpa_Spring Data - Fatal编程技术网

Java 来自Spring JPA查询的自定义结果

Java 来自Spring JPA查询的自定义结果,java,spring,spring-boot,spring-data-jpa,spring-data,Java,Spring,Spring Boot,Spring Data Jpa,Spring Data,我有一个用户类,我想从数据库中提取该类的所有对象。我正在使用Spring数据JPA,并使用@Query获取数据。是否有一种方法可以隐藏用户电话号码的部分数字。类似于将123-456-7890转换为123-XXX-XXXX @Query(value = "SELECT u FROM User u ORDER BY u.name") List<User> getAllUsers(); @Query(value=“按u.name从用户u订单中选择u”) 列出getAllUsers()

我有一个用户类,我想从数据库中提取该类的所有对象。我正在使用Spring数据JPA,并使用
@Query
获取数据。是否有一种方法可以隐藏用户电话号码的部分数字。类似于将123-456-7890转换为123-XXX-XXXX

 @Query(value = "SELECT u FROM User u ORDER BY u.name")
 List<User> getAllUsers();
@Query(value=“按u.name从用户u订单中选择u”)
列出getAllUsers();
我在代码中的多个位置使用用户对象,因此每次获取和更新记录都会非常耗时,用户会随着时间的推移而增长,因此也会影响性能

是否有任何方法(某些后处理器或任何东西)可以在从数据库进行FET后将数据填充到对象中时处理它

任何指针都会非常有用


谢谢。

您可以在使用属性转换器获取数据时转换数据

public class PhoneNumberAttributeConverter implements AttributeConverter<String, String> {
    @Override
    public String convertToDatabaseColumn(String value) {
        return value;
    }
    @Override
    public String convertToEntityAttribute(String a) {
        String value = a.substring(0, 3) + s.substring(3).replaceAll("[0-9]", "X");
        return value;
    }
}

您可能对使用转换器感兴趣:谢谢您的回复。我应用了这个变化,现在到处都是123-XXX-XXXX。是否有方法显示管理员用户的完整电话号码。您是使用实体类进行响应还是使用dto类?然后可以使用序列化程序,并在需要隐藏时使用。使用responseEntity返回实体类。你们能和我分享任何一个url吗?这会帮助我更好地理解。@FoxHowl你们想要一个用户角色的自动句柄吗?使用实体类作为响应不是一种好模式。如果您使用一个单独的回答dto,那么您可以使用您得到这个问题的答案了吗?
@Convert(converter = PhoneNumberAttributeConverter.class)
private String phoneNumber;