Я использую весеннюю загрузку со спящим режимом для своего приложения. В моем приложении есть некоторые конфиденциальные данные, поэтому они хранятся в базе данных в зашифрованном виде.
Однако мое приложение требует их расшифровки. Обычно это делается с помощью процедуры в базе данных. В простом старом 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
во время загрузки объекта из базы данных.
Есть ли способ сделать это? Заранее спасибо. :)