2016-05-24 38 views
0

我有一个名为Article的Hibernate实体,从数据库的角度来看,我想在同一个表中存储下一个章节id和上一章id,所以有两个one-表与其自身的一对一关系以及nextArticleIdpreviousArticleId是来自同一表的外键。具有多个自关系的Hibernate实体(递归关系)

我的问题是,是否有建议的方式来处理这种情况时创建一个Hibernate实体?或者我只是将其视为两个正常的一对一关系,并且在Article实体内只有两个不同的Article对象来表示下一篇文章和以前的文章?

问候,

回答

1

问题

是有一个建议的方式创建此一个Hibernate实体时处理的情况呢?

对待这两个正常的一对一关系,只是有条

1

在两个不同的文章的对象是有一个正常的方式这样的映射

class Article { 

    @OneToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "fk_article_prev") 
    private Article previouse; 

    @OneToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "fk_article_next") 
    private Article next; 

} 
+0

谢谢v.ladynev,我只是想知道有这样的特别在Hibernate中做这件事。 –

+1

@Tefa我认为没有。请记住,Hibernate将使用一级缓存('Session')来创建额外的'Article'。 –