SpringDataJPA之关联关系,详细说一下Redis每种数据类型的使用场景

pojo

@Entity

@Table(name=“t_users”)

public class Users implements Serializable{

@Id

//strategy=GenerationType.IDENTITY 自增长

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name=“userid”)

private Integer userid;

@Column(name=“username”)

private String username;

@Column(name=“userage”)

private Integer userage;

@ManyToOne()

@JoinColumn(name=“roles_id”)

private Roles roles;

public Integer getUserid() {

return userid;

}

public void setUserid(Integer userid) {

this.userid = userid;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public Integer getUserage() {

return userage;

}

public void setUserage(Integer userage) {

this.userage = userage;

}

@Override

public String toString() {

return “Users [userid=” + userid + “, username=” + username + “,userage=” + userage + “]”;

}

}

@Entity

@Table(name=“t_roles”)

public class Roles {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name=“roleid”)

private Integer roleid;

@Column(name=“rolename”)

private String rolename;

@OneToMany(mappedBy=“roles”)

private Set users = new HashSet<>();

public Integer getRoleid() {

return roleid;

}

public void setRoleid(Integer roleid) {

this.roleid = roleid;

}

public String getRolename() {

return rolename;

}

public void setRolename(String rolename) {

this.rolename = rolename;

}

@Override

public String toString() {

return “Roles [roleid=” + roleid + “, rolename=” + rolename + “]”;

}

}

操作

/**

  • 一对多的关联关系测试

  • @author Administrator

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(“classpath:applicationContext.xml”)

public class OneToManyTest {

@Autowired

private UsersDao usersDao;

/**

  • 添加用户同时添加角色

*/

@Test

public void test1(){

//创建角色

Roles roles = new Rol

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

es();

roles.setRolename(“管理员”);

//创建用户

Users users =new Users();

users.setUserage(30);

users.setUsername(“小王”);

//建立关系

roles.getUsers().add(users);

users.setRoles(roles);

//保存数据

this.usersDao.save(users);

}

/**

  • 根据用户 ID 查询用户信息,同时查询角色

*/

@Test

public void test2(){

Users users = this.usersDao.findOne(14);

System.out.println(“用户姓名:”+users.getUsername());

Roles roles = users.getRoles();

System.out.println(roles);

}

}

3.多对多


一个角色可以拥有多个菜单,一个菜单可以分配多个角色。多对多的关联关系

角色:多方

菜单:多方

Pojo

@Entity

@Table(name=“t_roles”)

public class Roles {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name=“roleid”)

private Integer roleid;

@Column(name=“rolename”)

private String rolename;

@ManyToMany

//@JoinTable:配置中间表信息

//joinColumns:建立当前表在中间表中的外键字段

@JoinTable(name=“t_roles_menus”,joinColumns=@JoinColumn(name=“role_id”),inverseJoinColumns=@JoinColumn(name=“menu_id”))

private Set menus = new HashSet<>();

public Set getMenus() {

return menus;

}

public void setMenus(Set menus) {

this.menus = menus;

}

public Integer getRoleid() {

return roleid;

}

public void setRoleid(Integer roleid) {

this.roleid = roleid;

}

public String getRolename() {

return rolename;

}

public void setRolename(String rolename) {

this.rolename = rolename;

}

@Override

public String toString() {

return “Roles [roleid=” + roleid + “, rolename=” + rolename + “]”;

}

}

@Entity

@Table(name=“t_menus”)

public class Menus {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

@Column(name=“menusid”)

private Integer menusid;

@Column(name=“menusname”)

private String menusname;

@Column(name=“menusurl”)

private String menusurl;

@Column(name=“fatherid”)

private Integer fatherid;

@ManyToMany(mappedBy=“menus”)

private Set roles = new HashSet<>();

public Set getRoles() {

return roles;

}

public void setRoles(Set roles) {

this.roles = roles;

}

public Integer getMenusid() {

return menusid;

}

public void setMenusid(Integer menusid) {

this.menusid = menusid;

}

public String getMenusname() {

return menusname;

}

public void setMenusname(String menusname) {

this.menusname = menusname;

}

public String getMenusurl() {

return menusurl;

}

public void setMenusurl(String menusurl) {

this.menusurl = menusurl;

}

public Integer getFatherid() {

return fatherid;

}

public void setFatherid(Integer fatherid) {

this.fatherid = fatherid;

}

@Override

public String toString() {

return “Menus [menusid=” + menusid + “, menusname=” + menusname+ “, menusurl=” + menusurl + “, fatherid=”+ fatherid + “]”;

}

}

操作

/**

  • 多对多关联关系测试

  • @author Administrator

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(“classpath:applicationContext.xml”)

public class ManyToManyTest {

@Autowired

private RolesDao rolesDao;

/**

  • 添加角色同时添加菜单

*/

@Test

public void test1(){

//创建角色对象

Roles roles = new Roles();

roles.setRolename(“超级管理员”);

//创建菜单对象 XXX 管理平台 —>用户管理

Menus menus = new Menus();

menus.setMenusname(“XXX 管理平台”);

menus.setFatherid(-1);

menus.setMenusurl(null);

//用户管理菜单

Menus menus1 = new Menus();

menus1.setMenusname(“用户管理”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值