java关联关系crud

假设有User和groubs两个对象(表),当修改其中一个则另外一个也跟着改变。

package hibernate002test.copy;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
/**
* cascade:集成
* @author Lenovo
*
*/
@Entity
public class User {

private int userid;
private String username;
private Groups group;

@ManyToOne(cascade= {CascadeType.ALL})//让Groups和User之间相互集成,all代表任何时候都相互影响
public Groups getGroup() {
    return group;
}

public void setGroup(Groups group) {
    this.group = group;
}

@Id
@GeneratedValue
public int getUserid() {
    return userid;
}

public void setUserid(int userid) {
    this.userid = userid;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

}
package hibernate002test.copy;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Groups {
private int id;
private String name;
private Set<User> user = new HashSet<User>();

@Id
@GeneratedValue
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@OneToMany(mappedBy="group")    
public Set<User> getUser() {
    return user;
}

public void setUser(Set<User> user) {
    this.user = user;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}
package datatest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.After;
import org.junit.Before;

import hibernate002test.copy.Groups;
import hibernate002test.copy.User;

/**
* 在一对一双向关联时要使用例如:@OneToOne(mappedBy=”wife”)
*
* @author Lenovo
*
*/
public class Test {

private static SessionFactory sessionfactory;

@Before
public void Init() {
    //new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);创建表
    sessionfactory = new AnnotationConfiguration().configure().buildSessionFactory();
}

@After
public void Destroy() {
    sessionfactory.close();
}

@org.junit.Test
public void test() {
    User user=new User();
    user.setUsername("貔貅");
    Groups groups=new Groups();
    groups.setName("饕餮");
    user.setGroup(groups);
    Session session=sessionfactory.getCurrentSession();
    session.beginTransaction();
   // session.save(groups);在User中使用了 cascade:集成
    session.save(user);
    session.getTransaction().commit();
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值