【问题标题】:hibernate formula with column带有列的休眠公式
【发布时间】:2011-02-14 03:05:34
【问题描述】:

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

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

【问题讨论】:

  • 我在回答中不知何故错过了问题的重要部分。让我重新考虑一下……

标签: java hibernate orm annotations


【解决方案1】:

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>

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 1970-01-01
    • 2018-07-06
    • 2016-01-26
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2017-08-04
    相关资源
    最近更新 更多