Osw*_*Osw 5 java hibernate jpa
想象一下以下两个实体.Element
是包含一些数据的简单类:
@Entity
public class Element {
private String data;
public String getData() { return data; }
public void setData(String data) { this.data = data; }
}
Run Code Online (Sandbox Code Playgroud)
下一个类,名为VersionedElement
,扩展Element
并包含不同版本以及当前版本.这是我的"解决方案":
@Entity
public class VersionedElement extends Element {
private Set<Element> versions;
private Element currentVersion;
@Override
public String getData() {
return getCurrentVersion().getData();
}
@Override
public void setData(String data) {
getCurrentVersion().setData(data);
}
@OneToMany
public Set<Element> getVersions() {
return versions;
}
public void setVersions(Set<Element> versions) {
this.versions = versions;
}
@ManyToOne
public Element getCurrentVersion() {
return currentVersion;
}
public void setCurrentVersion(Element currentVersion) {
this.currentVersion = currentVersion;
}
}
Run Code Online (Sandbox Code Playgroud)
而且我不喜欢我写的东西,错误的东西,太简单的方法.首先,在后一类currentVersion
中不受限制且与之无关versions
.看起来代码缺少一些辅助类,或抽象级别,或JPA注释技术,或以上所有.对于这个简单的案例,我需要一个优雅的,值得JPA手动解决方案.任何提示,链接或代码片段将不胜感激.
Luc*_*ira 13
如果你想要一个随时可用的hibernate实体版本控制解决方案,试试hibernate-envers.它将使对象版本控制/审计变得轻而易举.查看http://docs.jboss.org/envers/docs/index.html上的文档
欢呼,祝你好运!
归档时间: |
|
查看次数: |
3990 次 |
最近记录: |