Java 使用jpa(MYSQL)创建一对多关系
嗨,这是我的表结构,两个表角色和组件Java 使用jpa(MYSQL)创建一对多关系,java,mysql,jpa,Java,Mysql,Jpa,嗨,这是我的表结构,两个表角色和组件 +----------------+ | role | +----------------+ | role_id : PK | | role_name | | role_desc | +----------------+ | +----------------+ | component | +---------------
+----------------+
| role |
+----------------+
| role_id : PK |
| role_name |
| role_desc |
+----------------+
|
+----------------+
| component |
+----------------+
| comp_id : PK |
| role_id : FK |
| parent_comp |
| view_per |
| add_per |
| edit_per |
| delete_per |
+----------------+
这些是bean类
package com.example.rolessample;
public class component {
private String comp_id;
private String role_id;
private String parent_comp;
private char view_per;
private char add_per;
private char edit_per;
private char delete_per;
}
package com.example.rolessample;
public class role {
private String role_id;
private String role_name;
private String role_desc;
}
我需要向bean类添加什么
我已经看过这个例子,但我不知道如何将它应用到我的例子中
提前感谢。如果实体中不需要双向关系,只需将“组件”类中的“角色id”字段更改为类似以下内容:
@javax.persistence.ManyToOne
private role role;
package com.example.rolessample;
@Entity
public class component {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer comp_id;
@ManyToOne
@JoinColumn(name="role_id")
private role role_c
private String parent_comp;
private char view_per;
private char add_per;
private char edit_per;
private char delete_per;
}
package com.example.rolessample;
@Entity
public class role {
@Id
@GenerValue(strategy = GenerationType.SEQUENCE)
private Integer role_id;
private String role_name;
private String role_desc;
@OneToMany (mappedBy = "role_c")
private List <component> component_r
}
注意,在这种情况下,“角色”将拥有关系,“组件”将是反向的(非拥有的)“侧”
如果您还需要双向关系,则必须向“角色”类添加带有@javax.persistence.OneToMany anntoattion和指定“mappedBy”注释的字段
另外,还可以查看文档中关于该注释的其他漏洞,以获得更多的控制权。类似以下内容:
@javax.persistence.ManyToOne
private role role;
package com.example.rolessample;
@Entity
public class component {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer comp_id;
@ManyToOne
@JoinColumn(name="role_id")
private role role_c
private String parent_comp;
private char view_per;
private char add_per;
private char edit_per;
private char delete_per;
}
package com.example.rolessample;
@Entity
public class role {
@Id
@GenerValue(strategy = GenerationType.SEQUENCE)
private Integer role_id;
private String role_name;
private String role_desc;
@OneToMany (mappedBy = "role_c")
private List <component> component_r
}
package com.example.rolessample;
@实体
公共类组件{
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE)
私有整数comp_id;
@许多酮
@JoinColumn(name=“role\u id”)
私人角色
私有字符串父组件;
私有字符视图;
私有字符添加_per;
私人字符编辑;
私用字符删除;
}
包com.example.rolessample;
@实体
公共阶级角色{
@身份证
@GenerValue(策略=GenerationType.SEQUENCE)
私有整数角色_id;
私有字符串角色名称;
私有字符串角色描述;
@OneToMany(mappedBy=“role\u c”)
私有列表组件
}