hibernate公式用列

时间:2010-04-30 06:58:45

标签: java hibernate orm annotations

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

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

1 个答案:

答案 0 :(得分:1)

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

不幸的是,看起来你正在使用Hibernate Annotations,而且这个功能还没有。您需要使用基于XML的映射。以下是使用reader和writer表达式的示例。 (它们都是可选的。)

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