【发布时间】:2013-04-05 13:53:03
【问题描述】:
我定义了一个 Versioned 接口,期望我可以在任何我想使用 JPA 版本控制功能的持久实体上实现它(例如,比较空中碰撞的版本、更新时自动递增)。
public interface Versioned {
@Version
int getRevision();
}
这并没有节省太多(如果有的话)编码,但它也为我提供了一个我计划稍后使用的标记界面。
public class Foo implements Versioned {
private int revision;
@Override
public int getRevision() {
return revision;
}
}
@Version 允许在方法上使用,我希望 Foo 从Versioned 接口继承该特性。情况似乎并非如此。我可以在数据库中更新我的Foo 实例,但修订号不会自动更改。
但是,如果我在实现中添加 @Version 注释,它会按预期工作:
@Version
private int revision;
我没有被卡住 - 我可以获得所需的功能。我只是好奇:是否有一个“技巧”可以让它与接口方法上的注释一起正常工作?或者有人可以指出我为什么不能按预期工作的文档吗?
【问题讨论】:
标签: java inheritance jpa annotations