Springboot JPA - вызывает функцию свойства, когда объект извлекается из БД. - PullRequest
0 голосов
/ 14 июля 2020

Я использую весеннюю загрузку со спящим режимом для своего приложения. В моем приложении есть некоторые конфиденциальные данные, поэтому они хранятся в базе данных в зашифрованном виде.

Однако мое приложение требует их расшифровки. Обычно это делается с помощью процедуры в базе данных. В простом старом SQL это можно сделать без проблем.

@Entity
@Table(name = "my_table")
@Data
@Component
public class myObject implements Serializable
{
    //This is stored in DB decrypted. I want this to be decrypted when I fetch the records.
    @Column(name = "sensitive_data")
    private String sensitiveData;

    //Other unrelated properties
}

Я могу выполнить эту расшифровку после загрузки объекта в мое приложение, как я написал ниже. Однако это приведет к увеличению числа вызовов БД для каждого необходимого мне объекта, а также замедлит работу моего приложения. Итак, я подумал о том, чтобы найти способ получить расшифрованное значение this при загрузке моего объекта из базы данных.

@Repository
public interface myRepo extends JpaRepository<myObject , String>
{
    //(1)I use this for getting the list of objects from database
    @Query("SELECT obj FROM myObject obj WHERE obj.statusCode =:status_code ")
    List<myObject> getmyObjects(@Param("status_code") String status_code);

    //(2)I use this to get decrypted value after when I perform operations on objects received from (1)
    @Procedure("decrypt_function")
    String getDecrptedValue(@Param("encrypted") String encrypted);
}

Для ясности, столбец sensitive_data будет иметь значение типа «212AFD232323DGGFF». Но мне нужно расшифрованное значение, вызывая decrypt_function во время загрузки объекта из базы данных.

Есть ли способ сделать это? Заранее спасибо. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...