java - 为 Hibernate @ColumnTransformer 打开 JPA 等价物

标签 java postgresql hibernate jpa openjpa

我正在将 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执行必要的转换并将实体映射到 View 而不是表。
  2. 将转换移至中间件并将其应用到 entity lifecycle callbacks 中.

这两种解决方案的另一个好处是您可以使实体不受自定义原生 SQL 的影响。

关于java - 为 Hibernate @ColumnTransformer 打开 JPA 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924915/

相关文章:

java - Hibernate 映射异常,使用注释

mysql - 嵌套对象插入需要时间 -Spring Data JPA、Hibernate 和 MySQL

java - Eclipse 构建路径 - 声明的包不匹配

django - 确保用户输入整数

sql - Postgres 在事务中组合两个写入查询

java - JPA+SQLite问题

java - Firebase - 在实时数据库中重新排序条目的最佳方式

java - ubuntu 使用什么外观?

java - 竞争条件和 clojure 原子

php - 自动选择带有pomm项目的特定hstore