java – Hibernate:两个OneToMany属性,由具有不同列的同一实体
发布时间:2020-12-15 08:48:46 所属栏目:Java 来源:网络整理
导读:我知道这可以通过HQL查询轻松解决,但我更喜欢让Hibernate为我处理一些OneToMany属性. 让我演示一下我希望我的域模型在伪代码中的样子: Game Long GameID Team HomeTeam Team AwayTeam @OneToMany(mappedBy="team") SetTeamPlay HomeTeamPlays @OneToMany(ma
我知道这可以通过HQL查询轻松解决,但我更喜欢让Hibernate为我处理一些OneToMany属性.
让我演示一下我希望我的域模型在伪代码中的样子: Game Long GameID Team HomeTeam Team AwayTeam @OneToMany(mappedBy="team") Set<TeamPlay> HomeTeamPlays @OneToMany(mappedBy="team") Set<TeamPlay> AwayTeamPlays 表结构类似,有两个外键都指向Game表上的Team表.显然,如果只有一个外键,那么它将代表真正的一对多关系,但实际上我想要的是同一实体子类型的两个双向一对多特性. 我不相信使用@Where注释会起作用,因为它需要一个常量,而@JoinColumn不允许在这里.如果不可能,那就没关系,我只是想从其他人那里来. 解决方法
我打赌你并不真正理解mappedBy的使用.
您可以在https://stackoverflow.com/a/13812047/395202中参考我的其他答案 简而言之,mappedBy是双向关系“对立面”中的属性名称. 对于你的情况,它可能看起来像: class TeamPlay { @ManyToOne Team homeTeam; @ManyToOne Team awayTeam; } class Team { @OneToMany(mappedBy="homeTeam") Set<TeamPlay> homeTeamPlays; @OneToMany(mappedBy="awayTeam") Set<TeamPlay> awayTeamPlays; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |