如何配置 Hibernate @Type 注解的属性

How to configure attribute of Hibernate @Type annotation

在我的应用程序中,我启用了带有@Type 注释的jasypt 加密。但是当我需要在没有任何加密的情况下部署应用程序时,我必须按以下方式更改 @Type 注释的属性。目前我正在手动进行此操作。有什么方法可以使它可配置(根据配置值获取 @Type 注释的属性)?谢谢。

@Entity
@Table 
public class Data {

  @Id
  private Integer id;

  @Type(type = "encryptedString") // Need to enable for Encryption 
  @Type(type = "org.hibernate.type.TextType") // Need to enable for Non Encryption 
  private String data;
}

通过使用“JPA 实体生命周期回调方法”,我将加密和解密作为可配置参数处理。 现在Hibernate不负责加密和解密,应用相关的DTO是自己明确的进行加密和解密相关的操作。

@Entity
@Table 
public class Data {

  @Id
  private Integer id;

  @Type(type = "org.hibernate.type.TextType")
  private String data;

  // Before Persist or Update to Database
  @PrePersist
  @PreUpdate
  void beforePersistOrUpdate () {

      // Do encrypt
      if(ProjectProperty.isEncryptionEnabled) {
          this.data = ServiceUtil.commonService.doEncryptString(this.data);
      } 
  }

  // Before Load from Database
  @PostLoad
  void beforeLoad() {

      // Do Decrypt
      if(ProjectProperty.isEncryptionEnabled) {
          this.data = ServiceUtil.commonService.doDecryptString(this.data);
      }
  }
}