请考虑下表(使用相应的实体创建)
request
-------
id requestor type version items
1 a t1 1 5
2 a t1 2 3
3 b t1 1 2
4 a t2 1 4
5 a t1 3 9
以上是我想要实现的目标。版本字段是用户提供的其他计算字段。 基本上,请求的版本需要根据请求者和类型的组合来计算。具有给定组合的第一次出现将具有版本1然后版本2,依此类推。
我在一个不同的实体上使用@version尝试了各种各样的东西,只有三列,并使用ManytoOne等连接两个实体,但我无法达到预期的结果。我不想把你和我试过的东西混为一谈。
由于目标很简单,我认为应该有一种更简单的方法吗? 你能帮忙吗? - 任何帮助非常感谢!
提前致谢
答案 0 :(得分:0)
Version
注释用于指定用作乐观锁值的实体类的版本字段或属性。我不认为这与你正在寻找的东西有什么关系。以下是一些想法:
@Formula
(此注释允许您将属性映射到SQL表达式而不是表列)。 为了说明最新的选项,您可以声明如下内容:
@Formula("(select count(r.id)+1 from Request r where r.requestor=requestor and r.type=type and r.id<id)")
public long getVersion() { return version; }