当前位置: 首页 > 知识库问答 >
问题:

Java-Hibernate:基于另一个字段生成序列列

柳星晖
2023-03-14

需要向数据库中添加一个字段,该字段将记录与该(外部)id相关的序列号。

Example table data (current):

ID     ACCOUNT     some_other_stuff
1      1           ...
2      1           ...
3      1           ...
4      2           ...
5      2           ...
6      1           ...

我需要添加一个序列列,为每个帐户分别递增,实现:

ID     ACCOUNT     SEQ     some_other_stuff
1      1           1       ...
2      1           2       ...
3      1           3       ...
4      2           1       ...
5      2           2       ...
6      1           4       ...

请注意,顺序与帐户相关。

共有1个答案

白子昂
2023-03-14

不幸的是,JPA和hibernate无法做到这一点。唯一的解决方案是在服务中手动执行。您可以在列上使用@生成的值,但这依赖于数据库来提供值。您不能创建自定义序列实现并使用@GeneratedValue,因为这只适用于ID列。

 类似资料:
  • 我开始使用验证框架用jax-rs验证json请求 是否可以根据另一个字段验证一个字段? 提前致谢

  • 问题内容: 我正在处理一些旧代码/数据库,需要在数据库中添加一个字段,该字段将记录与该(外部)ID相关的序列号。 表格数据示例(当前): 我需要添加一个sequenceid列,该列分别为每个帐户递增,以实现: 请注意,该顺序与帐户有关。 有什么方法可以用SQL来实现,还是可以使用PHP脚本为我完成工作? TIA,Kev 问题答案: 这应该可以,但是可能很慢: 我称该表为“测试”;显然,需要正确设置

  • 我试图建立一个专栏,将根据另一个。新列应反映满足某些标准的值,并在值不符合标准的地方放置0。 例如,名为银行余额的列将有负值和正值;新列透支将为相应行提供负值,余额大于0时为0。 最终结果应该是这样的。

  • 问题内容: 考虑具有一个字符串和两个数组的JSON表示形式。例如, 在上述情况下,需要现场,但和被 有条件地 基于所述值所需的反序列化。换句话说,如果只需要有值和如果只要求有一个值。 当前,我在Jackson和Java中工作,并且能够通过创建以下代码来实现使字段成为强制性的: 但我不能只是附加其他到或因为它依赖的价值。 我怎么能有条件地要求和反序列化基础上的价值? 另外,我将要执行额外的检查,例如

  • 我有三个表A表有字段 带字段的表B 带字段的表C 和分别引用表A的和表B的。表C的postgres定义如下: 然而,在我的代码中,我不需要表C的实体。所以我希望能够在@ManyToOne关系中映射实体A和B: 我有一个测试是这样的: 在断言中失败。 我做错了什么?

  • 问题内容: 我可以为一个实体使用多个序列生成器吗? 问题答案: 你不能。该生成器仅适用于标识符列。 确保使用脚本(例如)创建此序列: 然后使用如下映射: