ORM存储文章及其修订的最佳做法是什么?当我自己在SQL中存储时,我曾经有以下结构:
articles [id, parent_id, name, text]
并且通过parent_id,我可以轻松识别父文章:
SELECT * FROM articles WHERE parent_id = 0;
将选择父修订版,
SELECT * FROM articles WHERE parent_id = 330;
将选择文章#330的所有修订版。
在ORM中执行此操作的正确方法是什么?我宁愿拥有:
整数parentId
文章parentArticle
列出修订
我将不胜感激。
答案 0 :(得分:1)
将你的sql翻译成hibernate / jpa实体:
@Entity
@Table.....
public class Article {
@Id
@Column
private Integer id,
@OneToMany(mappedBy="parentArticle")
private Set<Article> childArticles;
@ManyToOne
@JoinColumn(name="parent_id")
private Article parentArticle
@Column
private String name,text
...
我不知道你的具体要求。你检查过hibernate实体审核吗?对你有帮助吗?每次更改“文章”时,它都会存储带有修订号的副本。
hibernate envers的链接: http://docs.jboss.org/envers/docs/index.html