如何配置 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);
}
}
}
在我的应用程序中,我启用了带有@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);
}
}
}