2012-01-31 80 views
1

ORM中存储文章及其修订的最佳实践是什么?当我在SQL存储,我曾经有过以下结构:ORM:文章,修订和主要修订

articles [id, parent_id, name, text] 

和PARENT_ID我可以很容易地识别父的文章:

SELECT * FROM articles WHERE parent_id = 0; 

会选择父母的修改和,

SELECT * FROM articles WHERE parent_id = 330; 

会选择文章#330的所有修订版。

在ORM中做这件事的正确方法是什么?要我宁愿有:

  1. 整数parentId的

  2. 文章parentArticle

  3. 目录修订

我会明白任何建议。

回答

1

翻译你的SQL休眠/ 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实体审计吗?对你有帮助吗?每次更改“文章”时,它都会存储一份带有修订号的副本。休眠envers的

链接: http://docs.jboss.org/envers/docs/index.html

+0

这正是我一直在寻找!谢谢! – 2012-01-31 23:09:17