048:hibernate:关联关系的CRUD_cascade_fetch_2

crud 如果存储group的情况。

crud 如果从里面拿出来的时候。

 

cascude管crud,主要是增删改查

fetch管load,get主要是读

在group中加标签fetch=FetchType.EAGER

 

 

package com.bjsxt.hibernate;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="t_group")
public class Group {
	private int id;
	private String name;
	private Set<User> users = new HashSet<User>();
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@OneToMany(mappedBy="group",
		cascade={CascadeType.ALL},
		fetch=FetchType.EAGER
		)
	
	public Set<User> getUsers() {
		return users;
	}
	public void setUsers(Set<User> users) {
		this.users = users;
	}
}


对于执行testGetUser(),   先执行testSaveGroup()

当执行完testSaveGroup()后,在group表里面有id为1,在user表里面为Id为1和2

@Test
	public void testGetUser() {
		
		testSaveGroup();
		
		Session s = sessionFactory.getCurrentSession();
		s.beginTransaction();
		User u = (User)s.get(User.class, 1);
		
		s.getTransaction().commit();
		System.out.println(u.getGroup().getName());
	}


 

@Test
 public void testGetGroup() {
  
  testSaveGroup();
  
  Session s = sessionFactory.getCurrentSession();
  s.beginTransaction();
  Group g = (Group)s.get(Group.class, 1);
  s.getTransaction().commit();
  for(User u : g.getUsers()) {
   System.out.println(u.getName());
  }
 }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值