ORM:文章,修订和主要修订

时间:2012-01-31 20:04:23

标签: java hibernate jpa orm

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中执行此操作的正确方法是什么?我宁愿拥有:

  1. 整数parentId

  2. 文章parentArticle

  3. 列出修订

  4. 我将不胜感激。

1 个答案:

答案 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