在spring中有条件地将表列分配给属性

问题描述 投票:0回答:1

我是春天新手,想知道是否有办法有条件地绘制一个房产。例如,如果列a的值为0,则使用列b作为值,否则使用默认值a。

我正在思考一些事情

@Column(name="ColumnA" > 0 ? "ColumnA" : "ColumnB")
private Integer myValue;

如果有人能帮助我朝着正确的方向前进,那就太棒了!

java spring
1个回答
2
投票

当您正在使用Spring时,您可能正在导入Hibernate实现,因此这是@Formula注释(documentation)的一个很好的用例。

定义一个公式(派生值),它是一个SQL片段,在大多数情况下充当@Column替代品。

@Formula注释接受本地SQL,所以对于这种逻辑,SWITCH,或者SQL函数COALESCE,是你应该使用的。

例:

@Formula("case when ColumnA > 0 then ColumnA else ColumnB end")
private Integer myValue;
© www.soinside.com 2019 - 2024. All rights reserved.