JPA @Version with Embedded Class

时间:2011-07-06 17:24:05

标签: jpa annotations version

我定义了以下类,

@Entity
@Idclass(Key.class)
public void ClassA {

...

@Id
@Version
private long version;

...
}

public class Key {
 ...
 private long version;
 ...
}

编译时我得到以下错误,

“无法在嵌入式类上定义@Version”

因此,如上所述定义的复合键的属性也可能具有@Version。我确实尝试将@version添加到Id类本身的属性中,但它仍然无效。

事先提前

1 个答案:

答案 0 :(得分:1)

没有意义。 @Version的要点是定义JPA引擎在每次修改实体时将递增的字段。 @Id的要点是定义主键,主键应该是唯一且不可变的,并用于标识实体的整个生命周期。因此@Version字段不应该是ID的一部分。