从Spring JPA查询中获得的自定义结果

问题描述 投票:0回答:1

我有一个User类,我想从数据库中提取该类的所有对象。我使用Spring Data JPA,并使用 @Query. 有什么办法可以隐藏用户的部分电话号码的数字。比如把123-456-7890转换为123-XXX-XXXX。

 @Query(value = "SELECT u FROM User u ORDER BY u.name")
 List<User> getAllUsers();

我在代码中的多个位置使用用户对象,所以每次获取和更新记录都会非常耗时,而且用户会随着时间的推移而增加,所以也会影响性能。

有没有什么方法(一些后处理程序或其他什么)可以在从数据库中获取数据后将数据填充到对象中时处理它。

有什么方法可以在从数据库中获取数据后,将数据填充到对象中。

谢谢,我有一个User类,想把数据从数据库中填充到对象中去,有什么方法(一些后置处理程序之类的)可以处理。

java spring spring-boot spring-data-jpa spring-data
1个回答
1
投票

你可以在获取数据时使用属性转换器转换你的数据。

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;
    }
}

并使用它的字段

@Convert(converter = PhoneNumberAttributeConverter.class)
private String phoneNumber;
© www.soinside.com 2019 - 2024. All rights reserved.