Hibernate - oneToMany或仅嵌入式

时间:2017-04-05 07:44:35

标签: hibernate annotations

我;'从Hibernate开始。我有一个简单的问题。 我试图在JSF2中做一个app应该模仿简单的足球统计门户的应用程序。有几个实体:...俱乐部和球员。 我想在俱乐部和球员之间做一个关系: 俱乐部:

@OneToMany(mappedBy = "playersClub",
        orphanRemoval = true
)
@Cascade({CascadeType.ALL})
@ContainedIn
private Set<Player> players;

和玩家:

    @ManyToOne
//        (
//            fetch = FetchType.EAGER
//    )
    @Cascade({org.hibernate.annotations.CascadeType.ALL})
    @IndexedEmbedded(depth = 1)
    private Club playersClub;

这是我的问题,当我想到这个应用时,有一个想法:当一个俱乐部有前任。 20名玩家和用户将删除所有俱乐部应该仍然在应用程序中,但当用户想要删除俱乐部时 - 那么该俱乐部中的所有玩家也应该被删除(或者用户将看到警报 - 有xx玩家 - 你想要删除它们吗。) 我应该在Club中使用ManyToOne / OneToMany或Embedded Player吗?

1 个答案:

答案 0 :(得分:0)

当您建模时,您会想到实体:播放器是一个强大的&#34;实体(玩家可以在没有俱乐部的情况下存在),因此您应该使用ManyToOne/OneToMany,因为它代表您的模型。在您的业务逻辑中,您可以决定在删除俱乐部时要删除玩家的天气,或者让玩家减少俱乐部。以这种方式建模还可以让您轻松更改删除逻辑。