Java 我怎样才能坚持使用@Formula?
我正在用@Formula计算一个表的一些属性,我希望它们保持不变,但我无法将它们反映在数据库中,也就是说,它们保持不变。有没有办法保存计算属性?您不能使用Java 我怎样才能坚持使用@Formula?,java,spring,hibernate,Java,Spring,Hibernate,我正在用@Formula计算一个表的一些属性,我希望它们保持不变,但我无法将它们反映在数据库中,也就是说,它们保持不变。有没有办法保存计算属性?您不能使用@Formula注释来实现此目的,因为以下内容对此进行了解释: 您可以使用SQL片段(也称为公式)而不是将属性映射到列中。此类属性是只读的(其值由公式片段计算) 我想@ColumnTransformer注释就是您需要的 这是一个来自以下方面的示例: @列(name=“pswd”) @柱状变压器( read=“解密('AES','00',pswd
@Formula
注释来实现此目的,因为以下内容对此进行了解释:
您可以使用SQL片段(也称为公式)而不是将属性映射到列中。此类属性是只读的(其值由公式片段计算)
我想@ColumnTransformer
注释就是您需要的
这是一个来自以下方面的示例:
@列(name=“pswd”)
@柱状变压器(
read=“解密('AES','00',pswd)”,
write=“加密('AES','00',?)”
)
私有字符串密码;
这里的
read
是将在password
字段初始化期间计算的sql代码段,write
是将在password
字段保存期间计算的sql代码段(结果值将保存在pswd
列中)。对不起,我不理解您的意思。如果你解释读和写的含义以及“解密或加密”会更好。好的,请说明你如何使用@Formula
,以及你想要存储什么值以及存储在哪里。我已经更新了答案,希望能有所帮助。所以在write字段中,我应该插入语句?老实说,我不清楚你想要实现什么。通常,@Formula
用于基于目标实体表中的某些列的小计算。如果您想进行一些小计算并将值存储到目标实体的某个列中,则选择@ColumnTransformer
是正确的选择。如果需要使用复杂sql进行计算,然后使用复杂sql插入数据,则只需将此逻辑移到实体之外。