繁体   English   中英

使用休眠注释映射@ManyToMany关系

[英]Mapping @ManyToMany relationship with hibernate annotation

更新 :我看到了数据库关系,并且我意识到Module表有两个对Unit Table的引用(nid,unnr),但是Unit Table没有对Module Table的引用,它仅使用nid来对机架表进行引用。

首先,您当前正在显示的所有代码正在混淆一些东西...

您定义一个@JoinTable批注,这意味着您有3个表,其中1个具有单位,1个具有模块,一个具有两个实体的ID ...

我要说的第二点是,您谈论的是模块和单元之间的一对多关系,但是在示例代码中,您放置了“多对多” ...

如果我按照您的描述,可以在代码中像这样构建它:

@Entity
@Table(name = "unit")
public class Unit {
@Column(name = "nid")
private int nid;
@Id
@GeneratedValue
@Column(name = "unnr")
private int unnr;
@Column(name = "unhwtype")
private int unhwtype;
@Column(name = "unslot")
private int unslot;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "nid")
private Module module;

@Entity
@Table(name = "module")
public class Module {
@Column(name = "nid")
private int nid;
@Id
@Column(name = "mpos")
private int mpos;
@Column(name = "mhwtype")
private int mhwtype;
@OneToMany(mappedBy = "module", cascade = {CascadeType.ALL})
private Set units;

她的问题是我不确定这是否行得通,因为nid并不是模块Entity中的ID列,我想您需要更改您的设计,以便nid是ID列...您可以尝试使用此代码,并希望它能起作用,否则可以将Entity模块中的nid更改为ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM