我正在尝试学习JPA。我创建了一个简单的实体类。此实体有3列:ID,NAME,NUMBER_A。它工作正常:我可以坚持,更新和删除没有问题。
我要做的是创建一个计算/计算列。我想检索NUMBER_A,使用它来计算新值并设置计算列(假设为CALC_COLUMN)。
此计算列不会保留。它只在运行时才有必要。
我尝试创建一个简单的双重对象,它是getter和setter,但是当我运行应用程序时,它会抛出错误,告知列CALC_COLUMN不存在,因为JPA / EclipseLink正在尝试将其用作有效的数据库列(列'CALC_COLUMN'不在FROM列表中的任何表中......)。
那么,有可能吗?
TIA,Bob
答案 0 :(得分:2)
我要做的是创建一个计算/计算列。
JPA不为此提供标准支持。有些提供商有像Hibernate @Formula
这样的特定扩展,但EclipseLink没有direct equivalent(虽然它确实提供了替代方案,请参阅链接的答案)。
此计算列不会保留。它只在运行时才有必要。
那你为什么要谈论专栏呢? :)
我尝试创建一个简单的双重对象,它是getter和setter,但是当我运行应用程序时,它会抛出错误,告知列CALC_COLUMN不存在,因为JPA / EclipseLink正在尝试将其用作有效的数据库列(列'CALC_COLUMN'不在FROM列表中的任何表中......)。
根据您的描述,我不确定您是否需要更多的花哨,而不是额外的getter(没有任何字段)将返回计算值。如果需要,请将其设为@Transient
。但也许这只是一个例子。在这种情况下,请检查提到的链接(以及Request for Enhancement)。