为 Hibernate @ColumnTransformer 打开 JPA 等价物

Open JPA equivalent for Hibernate @ColumnTransformer

我正在将 ORM 框架从 Hibernate 切换到 OpenJPA。

在 Hibernate 中,我们可以使用 @ColumnTransformer 注释字段,如下所示。

@Column(name = "EMP_NAME", length = 4000)
@ColumnTransformer(
        read = "pgp_pub_decrypt(emp_name::bytea,dearmor('"+key1+"'))",
        write = "pgp_pub_encrypt(?, dearmor('"+key2+"'))"
)
private String empName;

如何在 OpenJPA 中执行同样的操作

我不确定与此相关的 OpenJPA 特定功能,但以下两个备选方案适用于所有 JPA 提供程序:

  1. 创建一个 updatable view 进行必要的转换并将实体映射到视图而不是 table。
  2. 将转换移至中间件并将其应用到

这两种解决方案的另一个好处是您可以保持自定义原生实体的清洁 SQL。