java - 带列的 hibernate 公式

标签 java hibernate orm annotations

我有一个表,其中有一列将在插入记录后由触发器加密。当我阅读该专栏时,我需要在 hibernate 域类中应用解密函数。

保存对象时,列的值也将被保存。读取列时,对读取的数据应用数据库函数。 @Formula@Column 注解不能应用于实体类中的属性。如何在不使用一个属性进行保存并使用另一个属性使用 @Formula 进行读取的情况下实现此功能?

最佳答案

Hibernate 3.5 中有一个新功能,允许您在列读取和写入期间应用数据库函数。详情可见Column Read and Write Expressions文档部分。在您的情况下,您将应用读取表达式,而不是写入表达式,因为触发器会为您处理加密。

不幸的是,您似乎正在使用 Hibernate Annotations,并且该功能尚不可用。您需要使用基于 XML 的映射。下面是读者和作者表达方式的示例。 (它们都是可选的。)

    <property name="creditCardNum">
        <column name="credit_card_num" not-null="true"
            write="encrypt(?)" 
            read="decrypt(credit_card_num)"/>
    </property>

关于java - 带列的 hibernate 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2742809/

相关文章:

javascript - Nashorn 解析 TypeScript

java - API服务的数据不更新,只在清除缓存后更新

orm - 有条件地对allownull约束进行后续处理

mysql - 如何从一个查询中提取多个用​​户信息?

java - 在 jsp 中显示 hibernate 查询结果的最佳方式

java - 如何在没有get参数的情况下管理请求

java - flyway mysqldump 迁移

java - 为什么 Spring Bean Self Invocation 在这里为 Transaction 工作

mysql - hibernate ManyToOne 关系对象中的 GWT rpc.SerializationException

java - 使用 Hibernate 二级缓存和 HSQL 的令人失望的插入/更新率