Hibernate-oneToMany或仅嵌入式

Hibernate-oneToMany或仅嵌入式,hibernate,annotations,Hibernate,Annotations,一、 "我从Hibernate开始。我有一个简单的问题。 我尝试在JSF2中做一个应用程序,该应用程序应该模仿简单的足球统计门户。有两个实体:。。。俱乐部和球员。 我想在俱乐部和球员之间建立一种关系: 俱乐部: 这是我的问题,当我想到这个应用程序时,有一个想法:当一个俱乐部有前20名球员,用户将删除所有球员时,俱乐部仍应在应用程序中,但当用户希望删除俱乐部时,则该俱乐部中的所有球员也应删除(或者用户将看到警报-有xx名玩家-是否要删除他们desite.) 我应该在俱乐部中使用manytone/O

一、 "我从Hibernate开始。我有一个简单的问题。 我尝试在JSF2中做一个应用程序,该应用程序应该模仿简单的足球统计门户。有两个实体:。。。俱乐部和球员。 我想在俱乐部和球员之间建立一种关系: 俱乐部:

这是我的问题,当我想到这个应用程序时,有一个想法:当一个俱乐部有前20名球员,用户将删除所有球员时,俱乐部仍应在应用程序中,但当用户希望删除俱乐部时,则该俱乐部中的所有球员也应删除(或者用户将看到警报-有xx名玩家-是否要删除他们desite.)
我应该在俱乐部中使用manytone/OneToMany还是嵌入式玩家?

当你建模时,你会想到实体:玩家是一个“强大”的实体(玩家可以在没有俱乐部的情况下生存)因此,您应该使用
manytone/OneToMany
,因为这代表了您的模型。在您的业务逻辑中,您可以决定是在删除俱乐部时删除球员,还是减少球员俱乐部的数量。通过这种建模方式,您还可以轻松更改删除逻辑。

No,No。相反,俱乐部可以通过hout玩家。在这种情况下,我的关系正常吗?我的意思是,当我的用户想要删除俱乐部时,我不能选择匹配的注释,那么所有的玩家都应该自动从数据库中删除。
@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;